使用DOJO或javascript迭代JSON对象

jbose2ul  于 2022-12-16  发布在  Dojo
关注(0)|答案(5)|浏览(208)

我有一个来自 AJAX resaponse的json对象,看起来像这样。

{    
  "customerID": "87545",    
  "parentCustomerID": "Parent:87545",   
  "relationshipID": "87545-- Rel 1234",    
  "customerName": "87545-- John Snow",    
  "constitution": "87545-- consti" 
}

现在我想使用DOJO 1.10库或者普通的for循环javascript来迭代这个过程,但是我无法完成循环。

require(["dojo/_base/array"], 
function(array){
    array.forEach(JSON.stringify(ajaxJsonData), function(entry, i){ });       
});

有人能帮帮我吗?
注意:这个JSON对象每次都是动态的,键和我的JSP页面中输入类型的id是一样的,所以我需要得到键和值。

wixjitnu

wixjitnu1#

遇到了这个问题,想指出你可能最终会迭代你不想要的东西。考虑在你的循环中添加一个检查:

for (var key in obj) {
    if (obj.hasOwnProperty(key)) {
        console.log(key, obj[key]);
    }
}

这可以防止你意外地在原型链上处理一些东西。我更喜欢使用Object.keys,它可以做同样的检查和更多的工作:

var keys = Object.keys(obj);
keys.forEach(function(key) {
    console.log(key, obj[key]);
});

TLDR;运行此程序,然后问自己这是否是您想要的:

function Person() {
	this.name = 'Joe';
	this.age = 21;
}
Person.prototype.sayHello = function() {
	console.log('Hi my name is ' + this.name + ', I am ' + this.age);
};

var obj = new Person();
obj.sayHello();
for (var key in obj) {
	console.log(key, obj[key]);
}
rxztt3cl

rxztt3cl2#

您可以在Javascript中使用以下内容:

var obj = { "customerID": "87545", "parentCustomerID": "Parent:87545",
"relationshipID": "87545-- Rel 1234", "customerName": "87545-- John Snow", "constitution": "87545-- consti" };

for (var key in obj) {

   console.log(key +":" +obj[key]);

}

说明:它将遍历obj中存在的所有键,并使用obj[key]将其与obj中的相应值沿着打印出来。
您可以通过在浏览器的控制台中复制上述代码来检查结果。

vm0i2vca

vm0i2vca3#

尝试这使用javascript

for(var key in  yourObj) {
    var value = yourObj[key];
    console.log(value);
}
fslejnso

fslejnso4#

下面是一个js fiddle链接:
http://jsfiddle.net/qo0669dx/1/

var Obj = {
    "customerID": "87545",
    "parentCustomerID": "Parent:87545",
    "relationshipID": "87545-- Rel 1234", 
    "customerName": "87545-- John Snow", 
    "constitution": "87545-- consti" 
}

for (var key in Obj) {
    console.log(key + ":" + Obj[key])
}
lsmd5eda

lsmd5eda5#

以下是Object而不是Array。若要循环访问对象,可以使用for in

var obj = { "customerID": "87545", "parentCustomerID": "Parent:87545",
"relationshipID": "87545-- Rel 1234", "customerName": "87545-- John Snow", "constitution": "87545-- consti" }

for(var prop in obj) {
   console.log(obj[prop]);
}

相关问题