使用 DOJO 或 javascript 遍历 JSON 对象
Iterate through JSON object using DOJO or javascript
我的 json 对象来自 ajax resaponse.It 看起来像这样。
{
"customerID": "87545",
"parentCustomerID": "Parent:87545",
"relationshipID": "87545-- Rel 1234",
"customerName": "87545-- John Snow",
"constitution": "87545-- consti"
}
现在我想使用 DOJO 1.10 库或普通的 for 循环遍历这个 javascript.But 我无法完成循环。我已经尝试过
的方法
require(["dojo/_base/array"],
function(array){
array.forEach(JSON.stringify(ajaxJsonData), function(entry, i){ });
});
有人能帮帮我吗?
注意:这个 json 对象每次都是动态出现的,键与我的 jsp 页面中输入类型的 ID 相同。所以我需要获取密钥和值。
尝试使用 javascript
for(var key in yourObj) {
var value = yourObj[key];
console.log(value);
}
您可以在 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
中的相应值一起打印
您可以通过在浏览器的控制台中复制以上代码来检查结果。
这是一个js fiddle link:
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])
}
以下是对象而不是数组。要遍历对象,您可以使用 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]);
}
遇到这个问题并想指出您最终可能会迭代您不想要的东西。考虑在循环中添加一个检查:
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]);
}
我的 json 对象来自 ajax resaponse.It 看起来像这样。
{
"customerID": "87545",
"parentCustomerID": "Parent:87545",
"relationshipID": "87545-- Rel 1234",
"customerName": "87545-- John Snow",
"constitution": "87545-- consti"
}
现在我想使用 DOJO 1.10 库或普通的 for 循环遍历这个 javascript.But 我无法完成循环。我已经尝试过
的方法require(["dojo/_base/array"],
function(array){
array.forEach(JSON.stringify(ajaxJsonData), function(entry, i){ });
});
有人能帮帮我吗?
注意:这个 json 对象每次都是动态出现的,键与我的 jsp 页面中输入类型的 ID 相同。所以我需要获取密钥和值。
尝试使用 javascript
for(var key in yourObj) {
var value = yourObj[key];
console.log(value);
}
您可以在 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
中的相应值一起打印
您可以通过在浏览器的控制台中复制以上代码来检查结果。
这是一个js fiddle link:
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])
}
以下是对象而不是数组。要遍历对象,您可以使用 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]);
}
遇到这个问题并想指出您最终可能会迭代您不想要的东西。考虑在循环中添加一个检查:
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]);
}