由于某种原因,我的循环将此数组视为一个字符串并循环遍历每个字符。
这是结构:
var json = [
{
"featured": "1",
"href": "someurl/",
"property": "some property",
"location": "<strong>Winston-Salem</strong>North Carolina, United States",
"date": "23 Oct",
"year": "2014"
},
{
"featured": "1",
"href": "someurl/",
"property": "Sheraton Albuquerque Airport Hotel",
"location": "<strong>Albuquerque</strong>New Mexico, United States",
"date": "23 Oct",
"year": "2014"
}
]
我正在循环:
for(var i = 0; i <= json.length; i++) {
console.log(json[i]);
}
这是我获得的输出类型的片段:
f e a t u r e d " : " 1 "
答案 0 :(得分:1)
Json实际上是一个字符串,而你没有序列化它。所以它是数组列表和其他对象的字符串表示。
如果它是一个ajax响应,你可能有一个错误的mime类型。因此它认为它是获取原始字符串而不是json。
如果您提出这样的问题,我想您可能应该先阅读JSON
编辑:
如果你想得到正确答案,你应该澄清你的问题。例如,你用什么来获得json。 如果它是jQuery而不是你使用这样的东西:
$.getJSON( "ajax/test.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});
或者如果你使用纯js,你应该像这样手动序列化json:
var obj = JSON.parse(text);
其中text变量包含从服务器获取的字符串或从中获取的字符串。