Javascript 无法循环浏览JSON数据
我有以下Json数据(请参见图片)。我试图使用下面的jQuery代码提取数据,但它不起作用。请帮忙Javascript 无法循环浏览JSON数据,javascript,jquery,json,Javascript,Jquery,Json,我有以下Json数据(请参见图片)。我试图使用下面的jQuery代码提取数据,但它不起作用。请帮忙 var items = []; $.each($.parseJSON(OnePointData), function (key, val) { items.push("<li id='" + key + "'>" + val + "</li>"); $.each(key, function(key2, val2) { items.push("
var items = [];
$.each($.parseJSON(OnePointData), function (key, val) {
items.push("<li id='" + key + "'>" + val + "</li>");
$.each(key, function(key2, val2) {
items.push("<li id='" + key2 + "'>" + val2 + "</li>");
});
});
console.log(items);
正如@Barmar所说的那样,
$.getJSON
自动调用$.parseJSON
。因此,请尝试删除$。parseJSON
函数:
$.getJSON("/Home/GetOnePointData", { Address: ui.item.value}, function(OnePointData) {
console.log(OnePointData);
var items = [];
var items2 = [];
$.each(OnePointData, function (key, val) {
items.push("<li id='" + key + "'>" + val + "</li>");
$.each(val, function (key2, val2) {
items2.push("<li id='" + key2 + "'>" + val2 + "</li>");
});
});
console.log(items2);
});
$.getJSON(“/Home/GetOnePointData”,{Address:ui.item.value},函数(OnePointData){
console.log(OnePointData);
var项目=[];
var items2=[];
$.each(OnePointData,function(key,val){
items.push(“”+val+“ ”);
$.each(val,function)(键2,val2){
items2.push(““+val2+” ”);
});
});
console.log(items2);
});
这是一个使用您发布的数据结构的示例,它是有效的
var OnePointData = {"GetQuestions":{"s1":"Q1,Q2","s2":"Q1,Q2,Q3","s3":"Q1,Q2,Q4","s4":"Q1,Q2,Q4,Q6"},
"GetQuestions2":{"s1":"Q1,Q2","s2":"Q1,Q2,Q3","s3":"Q1,Q2,Q4","s4":"Q1,Q2,Q4,Q6"}};
var items = [];
var items2 = [];
$.each(OnePointData, function (key, val) {
items.push("<li id='" + key + "'>" + val + "</li>");
$.each(val, function (key2, val2) {
items2.push("<li id='" + key2 + "'>" + val2 + "</li>");
});
});
console.log(items);
console.log(items2);
var OnePointData={“GetQuestions”:{“s1”:“Q1,Q2”,“s2”:“Q1,Q2,Q3”,“s3”:“Q1,Q2,Q4”,“s4”:“Q1,Q2,Q4,Q6”},
“获取问题2”:{“s1”:“Q1,Q2”,“s2”:“Q1,Q2,Q3”,“s3”:“Q1,Q2,Q4”,“s4”:“Q1,Q2,Q4,Q6”};
var项目=[];
var items2=[];
$.each(OnePointData,function(key,val){
items.push(“”+val+“ ”);
$.each(val,function)(键2,val2){
items2.push(““+val2+” ”);
});
});
控制台日志(项目);
console.log(items2);
输出:
["<li id='GetQuestions'>[object Object]</li>", "<li id='GetQuestions2'>[object Object]</li>"]
["<li id='s1'>Q1,Q2</li>", "<li id='s2'>Q1,Q2,Q3</li>", "<li id='s3'>Q1,Q2,Q4</li>", "<li id='s4'>Q1,Q2,Q4,Q6</li>", "<li id='s1'>Q1,Q2</li>", "<li id='s2'>Q1,Q2,Q3</li>", "<li id='s3'>Q1,Q2,Q4</li>", "<li id='s4'>Q1,Q2,Q4,Q6</li>"]
[“[object object] ”,“[object object] ”]
“第一季度、第二季度、第三季度”、“第三季度、第二季度、第四季度”、“第四季度、第二季度、第四季度、第六季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第六季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第六季度、第四季度、第四季度、第四季度、第四季度、第四季度、第四季度、第六季度、第四季度、第四
请提供足够的数据进行复制。如果这是在ajax中,则调用show full context。还有,抛出了什么错误?听起来像是在试图解析对象而不是字符串。显示更多代码。我使用以下代码从MVC控制器返回Json数据:返回Json(f,JsonRequestBehavior.AllowGet)。。。。在上述部分中添加了更多代码。您不需要使用$.parseJSON()函数,因为OnePointData已经是一个对象。$.getJSON
自动调用$.parseJSON
。这就是$.get
和$.getJSON
之间的全部区别。当我删除它时,我收到以下错误消息“Uncaught TypeError:无法使用'in'运算符在GetQuestions中搜索'11'”。错误发生在第二次$.each()调用中?是的,它发生在第二次调用中……当我使用第一次调用时,它只抓取对象“GetQuestions”。我想获取该块中的所有值…请查看第一次调用结果的更新图像。
var OnePointData = {"GetQuestions":{"s1":"Q1,Q2","s2":"Q1,Q2,Q3","s3":"Q1,Q2,Q4","s4":"Q1,Q2,Q4,Q6"},
"GetQuestions2":{"s1":"Q1,Q2","s2":"Q1,Q2,Q3","s3":"Q1,Q2,Q4","s4":"Q1,Q2,Q4,Q6"}};
var items = [];
var items2 = [];
$.each(OnePointData, function (key, val) {
items.push("<li id='" + key + "'>" + val + "</li>");
$.each(val, function (key2, val2) {
items2.push("<li id='" + key2 + "'>" + val2 + "</li>");
});
});
console.log(items);
console.log(items2);
["<li id='GetQuestions'>[object Object]</li>", "<li id='GetQuestions2'>[object Object]</li>"]
["<li id='s1'>Q1,Q2</li>", "<li id='s2'>Q1,Q2,Q3</li>", "<li id='s3'>Q1,Q2,Q4</li>", "<li id='s4'>Q1,Q2,Q4,Q6</li>", "<li id='s1'>Q1,Q2</li>", "<li id='s2'>Q1,Q2,Q3</li>", "<li id='s3'>Q1,Q2,Q4</li>", "<li id='s4'>Q1,Q2,Q4,Q6</li>"]