循环简单的JSON数组

时间:2014-10-23 21:20:32

标签: javascript arrays json

由于某种原因,我的循环将此数组视为一个字符串并循环遍历每个字符。

这是结构:

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
"

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" );
});

took it from here

或者如果你使用纯js,你应该像这样手动序列化json:

var obj = JSON.parse(text);

took it from here

其中text变量包含从服务器获取的字符串或从中获取的字符串。