Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何循环JSON obj的属性?_Javascript_Jquery_Json - Fatal编程技术网

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

     }

}