我有以下JSON对象
({
"codes": [ {
"code": {
"redeemed": "true", "retailer": "R1", "code": "ab11845b55b3ef1c3f137a35dbdfb270"
}
}, {
"code": {
"redeemed": "false", "code": "48c02f7bd35271de0aa215209b0a390f", "message": "code already used"
}
} ]
});
for (var code in data.codes) {
console.log(code) // prints 0
console.log(code[0].id) // prints 0
}
如何单独访问内部对象?
答案 0 :(得分:1)
输出每个"code"
个对象:
// First, assign your data to a variable:
var data = ({
"codes": [ {
"code": {
"redeemed": "true", "retailer": "R1", "code": "ab11845b55b3ef1c3f137a35dbdfb270"
}
}, {
"code": {
"redeemed": "false", "code": "48c02f7bd35271de0aa215209b0a390f", "message": "code already used"
}
} ]
});
// (I use the "c" temprary variable here because it's shorter)
var c = data.codes;
// Loop through all the codes.
for (var i = 0; i < c.length; i++) {
// Log the specific code at [i].
console.log(c[i].code); // Output a "code" object.
}
然后您可以使用:
c[i].code.redeemed;
c[i].code.retailer;
c[i].code.code;
c[i].code.message;
但是,当它们未设置为特定undefined
对象的属性时,它们将返回"code"
。
<强> Working example 强>
答案 1 :(得分:0)
假设你添加了什么:
window.json_obj = ({"codes":[{"code":{"redeemed":"true","retailer":"R1","code":"ab11845b55b3ef1c3f137a35dbdfb270"}},{"code":{"redeemed":"false","code":"48c02f7bd35271de0aa215209b0a390f","message":"code already used"}}]});
console.log(json_obj.codes[0]['code']['code']);
// or
// console.log(json_obj.codes[0].code.code);
答案 2 :(得分:0)
<强> jsFiddle demo 强>
console.log( obj.codes[0].code.retailer );
console.log( obj.codes[1].code.message );
输出
R1
代码已经使用
没有任何对象具有id
属性。
答案 3 :(得分:0)
首先:
如果你没有理由,你的JSON不应该出现在parens中:
(<JSON>);
如果这就是你所做的一切,那就不会让你访问它 您需要将其分配给变量...
var data = { codes : [ { code : "...", ...}, ... ] };
完成后,您可以访问:
data.codes[i].code.code;
data.codes[i].code.redeemed;
PS:如果它不是一个完整的字符串
'{ "codes":[{"code":"...",...},...]}'
那么它不是JSON对象,它是一个JavaScript对象 是的,这听起来很挑剔 但这一切都归结为如果你需要解析它以及如何正确使用它之前。
答案 4 :(得分:-1)
for(var stuff in whatever)返回对象的索引。 所以基本上,要访问你必须要做的对象
console.log(data.codes[code]);
console.log(data.codes[code].id);
请下次以可读的方式格式化你的json,这里很难阅读:)