2010-12-02 32 views
0

我有这样的代码:如何将JSON封装在括号内?

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

`“(”+ simplejson.dumps(dict)+“)”`?或者你的目标是什么? – 2010-12-02 21:29:04

+1

你得到的是有效的JSON输出。也许你应该修复PHP代码。 – 2010-12-02 21:29:56

回答

0

你可以这样做,但它现在不能在浏览器中查看。我认为这不是问题,下面是代码:

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') 
2
  1. JSON的MIME类型是“application/json”。
  2. 如果您在解析它时遇到问题PHP,那么这是一个PHP的问题。不要在服务器端添加parens,而是在解析PHP中的字符串之前添加它们。我想你知道如何在PHP中连接,对吧?无论如何,我不明白你的问题是什么 - 你不使用json_decode