使用Javascript访问JSON对象

时间:2012-11-29 15:18:36

标签: php javascript json

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

如何单独访问内部对象?

5 个答案:

答案 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,这里很难阅读:)