0

我有以下 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
}

如何分别访问内部对象?

4

5 回答 5

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"对象的属性时,它们将返回。

工作示例

于 2012-11-29T15:26:11.043 回答
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);
于 2012-11-29T15:26:27.977 回答
0

jsFiddle 演示

console.log( obj.codes[0].code.retailer );
console.log( obj.codes[1].code.message );

输出

R1
代码已使用

所有对象都没有id属性。

于 2012-11-29T15:26:35.930 回答
0

第一的:

如果您没有理由这样做,您的 JSON 不应该在括号中:

(<JSON>);

如果这就是你所做的一切,它不会让你访问它。
您需要将其分配给变量...

var data = { codes : [ { code : "...", ...}, ... ] };

一旦你这样做,你就可以访问:

data.codes[i].code.code;
data.codes[i].code.redeemed;

PS:如果它不是一个完整的字符串

'{ "codes":[{"code":"...",...},...]}'

那么它不是 JSON 对象,而是 JavaScript 对象。
是的,这听起来很挑剔。
但这一切都取决于您是否需要解析它以及如何解析它,然后才能正确使用它。

于 2012-11-29T15:34:06.690 回答
-1

for (var stuff in whatever) 返回对象的索引。所以基本上,要访问你的对象,你必须做

console.log(data.codes[code]);
console.log(data.codes[code].id);

并且请下次以可读的方式格式化您的 json,这里很难阅读 :)

于 2012-11-29T15:24:19.333 回答