序列化Django URL的JSON对象

2024-03-28 16:57:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个JSON对象,如下所示:

var obj = {  
   "selection":[  
      {  
         "author":"John Doe",
         "articles":[  
            "Article One",
            "Article Two"
         ]
      }
   ]
}

我想把这个对象传递给Django来呈现一个在呈现时显示“Article One”和“Article Two”的视图。我首先序列化JSON对象,以便它可以附加到URL;我使用$.param(obj)进行序列化。现在JSON对象如下所示:

^{2}$

现在我可以将它附加到一个路径中,并使用window.open(url)视图将处理其他所有事情。在Django端,我惊讶地看到JSON对象的结构已经改为:

"selection[0][author]=John+Doe&selection[0][articles][]=Article+One&selection[0][articles][]=Article+Two"

我希望能够使用JSON对象作为dict,例如:

obj = request.GET.get('selection')
obj = json.loads(obj)
print(obj[0].author)
...

我应该如何处理Django方面的JSON结构?在


Tags: 对象django视图jsonobj序列化articlejohn
1条回答
网友
1楼 · 发布于 2024-03-28 16:57:06

您没有正确地将对象序列化为JSON,即使您说您这样做了。正确的方法是使用JSON.stringify(),如@dunder所述。在

然后用JSON.parse(strignifiedJson)将其解析回一个对象。在

var obj = {  
   "selection":[  
      {  
         "author":"John Doe",
         "articles":[  
            "Article One",
            "Article Two"
         ]
      }
   ]
}
// Stringify and encode
var objAsParam = encodeURIComponent(JSON.stringify(obj));

// Send as a param, for example like http://example.com?obj=YourStringifiedObject...

// Parse it back:
var parsedObj = JSON.parse(decodeURIComponent(objAsParam));

相关问题 更多 >