在Javascript中解析JSON时遇到问题
我在myviews.py中生成了以下json在Javascript中解析JSON时遇到问题,javascript,django,json,Javascript,Django,Json,我在myviews.py中生成了以下json page_data= {'injured_json': '[{"pk": 24, "model": "appvisual.injured_count", "fields": {"Y_2010": 75445, "Y_2008": 70251, "Y_2009": 70504, "Y_2004": 57283, "Y_2005": 62006, "Y_2006": 64342, "Y_2007": 71099, "State_UT": "Tamil N
page_data= {'injured_json': '[{"pk": 24, "model": "appvisual.injured_count", "fields": {"Y_2010": 75445, "Y_2008": 70251, "Y_2009": 70504, "Y_2004": 57283, "Y_2005": 62006, "Y_2006": 64342, "Y_2007": 71099, "State_UT": "Tamil Nadu", "Y_2003": 55242, "Y_2011": 74245}}]'}
我将这个json传递给我的javascript。我的问题是如何在javascript中操作这个json
我尝试了以下代码,但不起作用:
function test() {
var dataRows = {{page_data}};
console.log(dataRows.injured_json[0].pk); };
编辑:javascript的完整json对象
{'injured_json': '[{"pk": 24, "model": "appvisual.injured_count", "fields": {"Y_2010": 75445, "Y_2008": 70251, "Y_2009": 70504, "Y_2004": 57283, "Y_2005": 62006, "Y_2006": 64342, "Y_2007": 71099, "State_UT": "Tamil Nadu", "Y_2003": 55242, "Y_2011": 74245}}]', 'total_json': '[{"pk": 23, "model": "appvisual.total_accident", "fields": {"Y_2010": 64996, "Y_2008": 60409, "Y_2009": 60794, "Y_2004": 52508, "Y_2005": 53866, "Y_2006": 55145, "Y_2007": 59140, "State_UT": "Tamil Nadu", "Y_2003": 51025, "Y_2011": 65873}}]', 'killed_json': '[{"pk": 24, "model": "appvisual.killed_count", "fields": {"Y_2010": 75445, "Y_2008": 70251, "Y_2009": 70504, "Y_2004": 57283, "Y_2005": 62006, "Y_2006": 64342, "Y_2007": 71099, "State_UT": "Tamil Nadu", "Y_2003": 55242, "Y_2011": 74245}}, {"pk": 60, "model": "appvisual.killed_count", "fields": {"Y_2010": 15409, "Y_2008": 12784, "Y_2009": 13746, "Y_2004": 9507, "Y_2005": 9758, "Y_2006": 11009, "Y_2007": 12036, "State_UT": "Tamil Nadu", "Y_2003": 9275, "Y_2011": 15422}}]'}
注意:
我发现我发送的json数据不是有效的json。我纠正了它。但现在的问题是,我正在字典中发送json数据。在接收javascrpit中的json数据时,格式变为(json数据)。由于额外添加了“(”和“)”,我无法在javascript中解析json。如何消除“(”和“)”来解析javascript中的json数据。请参阅:
见:
使用JSON
:
function test() {
var data = "{{page_data}}";
var dataRows = JSON.parse(data.injured_json);
console.log(dataRows[0].pk); };
使用JSON
:
function test() {
var data = "{{page_data}}";
var dataRows = JSON.parse(data.injured_json);
console.log(dataRows[0].pk); };
我不知道为什么每个人都指向
JSON.parse
。这里的问题是您试图访问一个数组,但它实际上是一个字符串。只需删除数组周围的引号
实际上。。。您根本不需要数组。我想你在寻找更像这样的东西:
{
"injured_json": {
"pk": 24,
"model": "appvisual.injured_count",
"fields": {
"Y_2010": 75445,
"Y_2008": 70251,
"Y_2009": 70504,
"Y_2004": 57283,
"Y_2005": 62006,
"Y_2006": 64342,
"Y_2007": 71099,
"State_UT": "Tamil Nadu",
"Y_2003": 55242,
"Y_2011": 74245
}
}
}
问题在于json格式
console.log(page_data.injured_json.pk); // logs 24
我不知道为什么每个人都指向
JSON.parse
。这里的问题是您试图访问一个数组,但它实际上是一个字符串。只需删除数组周围的引号
实际上。。。您根本不需要数组。我想你在寻找更像这样的东西:
{
"injured_json": {
"pk": 24,
"model": "appvisual.injured_count",
"fields": {
"Y_2010": 75445,
"Y_2008": 70251,
"Y_2009": 70504,
"Y_2004": 57283,
"Y_2005": 62006,
"Y_2006": 64342,
"Y_2007": 71099,
"State_UT": "Tamil Nadu",
"Y_2003": 55242,
"Y_2011": 74245
}
}
}
问题在于json格式
console.log(page_data.injured_json.pk); // logs 24
谢谢你的回答。但是console.log抛出一个错误,声明“SyntaxError:JSON.parse:unexpected character”@positlabs我想他是从django发送“JSON对象”,所以他必须使用双大括号来读取中的变量javascript@Chuvi如果您是从django发送“Json对象”,您将如何发送它?您是否将json.dumps与正确的mimetype一起使用?@VictorCastilloTorres:您将json对象发送到脚本是正确的。请参阅我对发送到脚本的完整json对象的编辑。顺便说一句,我是她。@VictorCastilloTorres:我使用simplejson.dumps,mimetype是application/jsontanks作为你的答案。但是console.log抛出一个错误,声明“SyntaxError:JSON.parse:unexpected character”@positlabs我想他是从django发送“JSON对象”,所以他必须使用双大括号来读取中的变量javascript@Chuvi如果您是从django发送“Json对象”,您将如何发送它?您是否将json.dumps与正确的mimetype一起使用?@VictorCastilloTorres:您将json对象发送到脚本是正确的。请参阅我对发送到脚本的完整json对象的编辑。顺便说一句,我是她。@VictorCastilloTorres:我使用simplejson.dumps,mimetype是application/jsontanks作为你的答案。但是console.log抛出一个错误,声明“SyntaxError:JSON.parse:unexpected character”@Chuvi使用此脚本?是的,仅使用此脚本。它不支持嵌套JSON,请包含字段,然后重试。。没用了,谢谢你的回答。但是console.log抛出一个错误,声明“SyntaxError:JSON.parse:unexpected character”@Chuvi使用此脚本?是的,仅使用此脚本。它不支持嵌套JSON,请包含字段,然后重试。。它不起作用