Как заключить JSON в скобки? - PullRequest
0 голосов
/ 03 декабря 2010

У меня есть этот код:

objects = Event.objects.all()
i = 0
dict = {}
small_dict = {}
for o in objects:
    small_dict = {'id': o.id, 'url': o.url, 'name': o.name, 'image': o.image}
    dict[str(i+1)] = small_dict
    small_dict = {}

return HttpResponse(
    simplejson.dumps(dict),
    content_type = 'application/javascript; charset=utf8'
)

и это дает мне это:

{"1": {"url": "http://www.rte.ie/tv/crimecall/", "image": "http://img.rasset.ie/0002c8d0-250.jpg", "id": 2, "name": "Crimecall"}}

Как я могу дополнительно заключить его в () скобок? Потому что без них я получаю ошибку при разборе их в php.

Ответы [ 2 ]

2 голосов
/ 03 декабря 2010
  1. MIME-тип JSON - это "application / json".
  2. Если у вас есть проблемы с анализом в PHP , тогда это проблема PHP . Не добавляйте скобки на стороне сервера, а добавляйте их перед анализом строки в PHP. Я думаю, вы знаете, как объединить в PHP, верно? Во всяком случае, я не понимаю, в чем ваша проблема - вы не используете json_decode ?
0 голосов
/ 03 декабря 2010

Вы можете сделать это таким образом, но это не отображается в браузере.Если это не проблема, вот код:

callback = request.GET.get('callback', '')
objects = Event.objects.all()
i = 0
dict = {}
small_dict = {}
for o in objects:
    small_dict = {'id': o.id, 'url': o.url, 'name': o.name, 'image': o.image}
    dict[str(i+1)] = small_dict
    small_dict = {}

response = simplejson.dumps(dict)
response = callback + '(' + response + ')';

return HttpResponse(response,
    mimetype ='application/json; charset=utf8')
...