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

初め:

次のような理由がない場合は、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 に答える
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 に答える
-1

for (var stuff in anything) は、オブジェクトのインデックスを返します。したがって、基本的に、オブジェクトにアクセスするには、行う必要があります

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

次回はjsonを読みやすい方法でフォーマットしてください。ここでは読みにくいです:)

于 2012-11-29T15:24:19.333 に答える