Kimmy
Kimmy

Reputation: 4049

How to return a list object in httpresponse Django

Does anyone know how to return a list object when you do HttpResponse.

I have tried

HttpResponse(['a'.'b'])

but this obviously doesn't work.

I have also tried the following

return HttpResponse(Context(['a','b']),mimetype='text/plain')

but this returns some extra thing which i dont want

['a', 'b']{'False': False, 'None': None, 'True': True}

i just want it to return

['a', 'b']

Thanks

Upvotes: 6

Views: 24211

Answers (4)

Jingchao Luan
Jingchao Luan

Reputation: 451

You can use the HttpResponse subclass: JsonResponse.

Reference: https://docs.djangoproject.com/en/2.0/ref/request-response/#jsonresponse-objects

For your instance:

from django.http import JsonResponse

return JsonResponse(['a', 'b'], safe=False)

Upvotes: 4

Manouchehr Rasouli
Manouchehr Rasouli

Reputation: 550

Hi this one will work:

your views :

 import json
 from django.http import HttpResponse

 def function(request):
     your_list = ['a', 'b']
     your_list_as_json = json.dumps(your_list)
     return HttpResponse(your_list_as_json)

Thank you for checking.

Upvotes: 2

ShiSan
ShiSan

Reputation: 1

Use comma (,), and not dot (.) to separate list elements, i.e:

return HttpResponse("['a', 'b']")

Upvotes: -1

Henrik Andersson
Henrik Andersson

Reputation: 47172

This should do it for you

from django.utils import simplejson
json_stuff = simplejson.dumps({"list_of_jsonstuffs" : ["a", "b"]})    
return HttpResponse(json_stuff, content_type ="application/json")

Upvotes: 6

Related Questions