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 />');
会将每一个应用到一个新行,但这不起作用。
答案 0 :(得分:2)
试试这个(重新格式化的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>');
});
});
答案 1 :(得分:1)
这不是有效的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或其他验证程序检查语法。
答案 2 :(得分:0)
有点偏离主题,但如果你不确定内容,你应该使用安全的方法将数据插入DOM。否则,您的代码存在XSS漏洞。
除了是安全问题之外,还有任何数据,例如“Foo Bar&lt; foo.bar@example.com>”不会像你(可能)那样呈现。
例如,您可以使用jQuery text()方法:
$('.testfield').append($('<p></p>').text(item));