2013-06-19 73 views
0

如何在javascript中解析JSON代碼,其中迭代器不相同?如何在JSON下面解析

var js= { 
    '7413_7765': { 
     availableColorIds: [ '100', '200' ], 
     listPrice: '$69.00', 
     marketingMessage: '', 
     prdId: '7413_7765', 
     prdName: 'DV by Dolce Vita Archer Sandal', 
     rating: 0, 
     salePrice: '$59.99', 
     styleId: '7765' 
    }, 
    '0417_2898': { 
     availableColorIds: [ '249', '203' ], 
     listPrice: '$24.95', 
     marketingMessage: '', 
     prdId: '0417_2898', 
     prdName: 'AEO Embossed Flip-Flop', 
     rating: 4.5, 
     salePrice: '$19.99', 
     styleId: '2898' 
    }, 
    prod6169041: { 
     availableColorIds: [ '001', '013', '800' ], 
     listPrice: '$89.95', 
     marketingMessage: '', 
     prdId: 'prod6169041', 
     prdName: 'Birkenstock Gizeh Sandal', 
     rating: 5, 
     salePrice: '$79.99', 
     styleId: '7730' 
    } 
} 

我怎麼能解析此JSON在jvascript?我想在JavaScript中的'prdName','listprice','salePrice'的值?

+6

這不是JSON ...它已經是JavaScript了。 – elclanrs

+0

@ user2244199你可以單獨發佈JSON嗎? – Praveen

回答

2
var products = js; // more semantic 
for (productId in products){ 
    var product = products[productId]; 
    console.log (product.prdName , product.listprice, product.salePrice); 
} 

JS是一個對象,通過第一級對象的屬性的for (key in instance)迭代移動,在這種情況下7413_7765,0417_2898和prod6169041,該密鑰被存儲在var productId,所以products[productId]將返回此屬性的值。

請注意,對象鍵名中的「」並不是必需的。

+0

使用此功能,您將如何獲得'0417_2898',prod6169041和'7413_7765'? –

+0

我嘗試過以上但未定義。 Ho wi將得到'0417_2898',prod6169041和'7413_7765' – user2244199

+0

js是一個JS對象,for(product in object)迭代器移動通過第一級屬性,在這種情況下是7413_7765,0417_2898和prod6169041,這些鍵存儲在var productId,js [productId]將返回這個屬性的值, – Edorka

0

您已將JSON分配給對象js

你通過JavaScript對象試圖環,如Edorka提到迭代它。