2012-07-25 80 views
1

我有這樣的JSON字符串:使用Prototype將字符串轉換爲JSON數組?

{"17":{"31":{"price":5,"oldPrice":5,"priceValue":"5.0000","type":"fixed","excludeTax":5,"includeTax":5},"29":{"price":8,"oldPrice":8,"priceValue":"8.0000","type":"fixed","excludeTax":8,"includeTax":8},"30":{"price":10,"oldPrice":10,"priceValue":"10.0000","type":"fixed","excludeTax":10,"includeTax":10}},"12":{"price":0,"oldPrice":0,"priceValue":"0.0000","type":"fixed","excludeTax":0,"includeTax":0},"11":{"price":0,"oldPrice":0,"priceValue":"0.0000","type":"fixed","excludeTax":0,"includeTax":0}} 

我怎樣才能將它轉換爲使用原型的陣列?我試過evalJSON(),但它沒有奏效。

+0

爲什麼你需要一個數組?作爲一個對象訪問它很容易做到。 – 2012-07-25 15:19:30

+0

我如何將其作爲對象訪問? – user1540714 2012-07-25 15:20:14

+0

如果它是一個字符串,你不能。您必須使用JSON解析器對其進行反序列化。 – Quentin 2012-07-25 15:20:49

回答

0

內置JSON.parse應該這樣做,你不需要任何庫:

var obj = JSON.parse(jsonString); 
0

你的字符串是沒有有效的JSON,因爲它包含兩個星號。刪除它們,之後申請evalJSON:

str.substring(1, -1).evalJSON(true); 

雖然我會說,你應該使用JSON.parse(或類似json2一個填充工具),而不是"".evalJSON

請注意,您將返回一個對象,而不是一個數組!

+0

Somebody editied my post,I had it in * and the編輯沒有刪除它們。 :) – user1540714 2012-07-25 15:22:37

+0

好的,我明白了。但是,到底什麼不起作用呢? – Bergi 2012-07-25 15:25:31