我有一个函数将获得带有对象的JSON数组.在函数中,我将能够遍历数组,访问属性并使用该属性.像这样:
我将传递给函数的变量将如下所示:
[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]
function test(myJSON)
{
// maybe parse my the JSON variable?
// and then I want to loop through it and access my IDs and my titles
}
Run Code Online (Sandbox Code Playgroud)
有什么建议我可以解决吗?
Bal*_*usC 52
这不是单个JSON对象.您有一组JSON对象.您需要先遍历数组然后访问每个对象.也许下面的启动示例很有帮助:
var arrayOfObjects = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}];
for (var i = 0; i < arrayOfObjects.length; i++) {
var object = arrayOfObjects[i];
for (var property in object) {
alert('item ' + i + ': ' + property + '=' + object[property]);
}
// If property names are known beforehand, you can also just do e.g.
// alert(object.id + ',' + object.Title);
}
Run Code Online (Sandbox Code Playgroud)
要了解有关JSON的更多信息,请查看此文章.
更新:如果JSON对象数组实际上是作为普通的香草字符串传入的,那么你确实需要eval()
这里.
var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
Run Code Online (Sandbox Code Playgroud)
Swa*_*mbe 11
这是你的dataArray
:
[
{
"id":28,
"Title":"Sweden"
},
{
"id":56,
"Title":"USA"
},
{
"id":89,
"Title":"England"
}
]
Run Code Online (Sandbox Code Playgroud)
然后parseJson
可以使用:
$(jQuery.parseJSON(JSON.stringify(dataArray))).each(function() {
var ID = this.id;
var TITLE = this.Title;
});
Run Code Online (Sandbox Code Playgroud)
通过“包含对象的 JSON 数组”,我猜你的意思是一个包含 JSON 的字符串?
如果是这样,您可以使用安全var myArray = JSON.parse(myJSON)
方法(本机方法或使用JSON2包含)或 usafe var myArray = eval("(" + myJSON + ")")
。通常应该避免使用 eval,但是如果您确定内容是安全的,那么就没有问题。
之后,您只需像往常一样遍历数组。
for (var i = 0; i < myArray.length; i++) {
alert(myArray[i].Title);
}
Run Code Online (Sandbox Code Playgroud)