TLDR:
这是this question的后续工作,以简化并继续。
我需要从数组中获取一些复杂的JSON数据。有了它,我需要标题和它的价值。我这样做的原因是因为我将知道调用了什么数组,但不知道数组内部正在生成的数据。
让我们说这个新数组如下:
{
"Days": [{
"day": "Sunday",
"time": "10.00"
},
{
"day": "Monday",
"time": "12.00"
},
{
"day": "Tuesday",
"time": "09.00"
},
{
"day": "Wednesday",
"time": "10.00"
},
{
"day": "Thursday",
"time": "02.00"
},
{
"day": "Friday",
"time": "05.00"
},
{
"day": "Saturday",
"time": "08.00"
}
]
}
感谢(Matthew Flaschen)的感谢
我需要它来获取周日和10.00,以及其他所有主题都一样。
此刻我解析此代码如下:
$.getJSON(url,
function(data) {
$.each(data, function(i, item) {
$('.testfield').append('<p>' + item + '</p>');
});
});
没有每个日期的增加时间,它将按如下方式分析数据:
Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday
[将时间添加到数组中的日期后,Firebug不再将其识别为JSON字符串。所以我想我在这里格式化错误。另外,我需要每天和每个时间都换行,我认为
$('.testfield').append('<p>' + item + '</p>' + '<br />');
将每个人都应用到新行上,但这行不通。
尝试一下(重新格式化的JSON-下次使用JSONLint检查您的JSON):
{
"Days": [
{
"Sunday": "10.00",
"Monday": "12.00",
"Tuesday": "09.00",
"Wednesday": "10.00",
"Thursday": "02.00",
"Friday": "05.00",
"Saturday": "08.00"
}
]
}
使用脚本:
$.getJSON( url, function(data){
$.each(data.Days[0], function(key,value){
$('.testfield').append('<p>' + key + ' : ' + value + '</p>');
});
});
这不是有效的JSON。做类似的事情:
{"Days":
[{"day": "Sunday", "time": "10.00"},
{"day": "Monday", "time": "12.00"},
{"day": "Tuesday", "time": "09.00"},
{"day": "Wednesday", "time": "10.00"},
{"day": "Thursday", "time": "02.00"},
{"day": "Friday", "time": "05.00"},
{"day": "Saturday", "time": "08.00"}
]}
始终使用JSONLint或其他验证器来检查语法。
有点偏离主题,但是如果不确定内容,则应使用安全的方法将数据插入DOM。否则,您的代码将具有XSS漏洞。
并且除了安全性问题外,诸如“ Foo Bar
例如,您可以使用jQuery text()方法:
$('.testfield').append($('<p></p>').text(item));