Javascript 如何循环JSON obj的属性?
可能重复:Javascript 如何循环JSON obj的属性?,javascript,jquery,json,Javascript,Jquery,Json,可能重复: 我试图找出如何循环遍历JSON obj的属性。我可以通过指定键(见下文)来获得属性,但是如何循环所有属性呢 var jsonStr = '{"Items":[{"Title": "Title 1", "Description":"Description 1"}]}'; var json_parsed = $.parseJSON(jsonStr); // Cycle through all list items $.each(json_parsed.Items, functio
我试图找出如何循环遍历JSON obj的属性。我可以通过指定键(见下文)来获得属性,但是如何循环所有属性呢
var jsonStr = '{"Items":[{"Title": "Title 1", "Description":"Description 1"}]}';
var json_parsed = $.parseJSON(jsonStr);
// Cycle through all list items
$.each(json_parsed.Items, function(i, val) {
var listItem = $(this);
var title = listItem.attr('Title');
var description = listItem.attr('Description');
// Instead, loop through all attributes
}
如果需要检查是否在相关对象上定义了相应的属性,而不是在原型链上的某些对象上定义了相应的属性(这对于相关案例来说很荒谬,但仍然很有用),可以添加此检查:
if (json_parsed.hasOwnProperty(name))
console.log(name + "=" + json_parsed[name]);
编辑
要实际迭代所有数组对象的属性,请使用以下代码段:
var items = json_parsed.Items;
for (var i = 0; i < items.length; ++i) {
console.log("Item #" + i);
for (var name in items[i]) {
console.log(name + "=" + items[i][name]);
}
}
var items=json\u parsed.items;
对于(变量i=0;i
JSON对象只是一个Javascript对象。如果您已经在使用jQuery,可以再次在其上使用$.each()来迭代其命名属性。var jsonStr='{“Items”:[{“Title”:“Title 1”,“Description”:“Description 1”}]};
var jsonStr = '{"Items":[{"Title": "Title 1", "Description":"Description 1"}]}';
var json_parsed = JSON.parse(jsonStr);
var items = json_parsed.Items; // an array
for (var i=0; i<items.length; i++) { // loop over it
var listItem = items[i]; // an object
for (var prop in listItem) { // enumerate its property names
// prop is "Title", "Description" etc
listItem[prop] // is the respective value
}
}
var json_parsed=json.parse(jsonStr);
var items=json_parsed.items;//阵列
对于(var i=0;iNote),没有所谓的“JSON对象”。当您解析一些JSON字符串时,您会得到一个javascript对象。请不要像这样使用jQuery!小心,这可能会迭代对象本身的属性。@Kiyura仅当对象是array@Kiyura如果这个对象是JSON解析的结果,那么就没有问题了。它可以,尽管这个例子很难是一个简单的例子受此影响。将修复此问题。是的,对于JSON对象这没有问题,但如果有人知道他们可以用于..在这样的情况下,他们以后可能会在普通JS对象上使用它,并对它引入原型属性感到惊讶。Bergi,谢谢你的消息。这段代码给了我:对象标题:“Title1”Description:“Description1”…然后是一个完整的函数列表。呃,什么?哪些函数?您对对象造成了伤害。原型?例如函数(a,b){返回新的e.fn.init(a,b,h)}。这是打印属性的代码:for(listItem中的var prop){//枚举其属性名称//prop是“Title”,“Description”etc console.log(listItem[prop])//是相应的值}我不是告诉过你不要(ab)使用jQuery吗?:)如果你真的想使用它的话代码>或var列表项=val代码>
var jsonStr = '{"Items":[{"Title": "Title 1", "Description":"Description 1"}]}';
var json_parsed = JSON.parse(jsonStr);
var items = json_parsed.Items; // an array
for (var i=0; i<items.length; i++) { // loop over it
var listItem = items[i]; // an object
for (var prop in listItem) { // enumerate its property names
// prop is "Title", "Description" etc
listItem[prop] // is the respective value
}
}