2015-10-14 198 views
1

我創建了一個包含對象的數組,其中一些屬性也是對象。我已成功將其轉換爲JSON,並需要將其轉換回對象數組,或者以某種方式從JSON對象的正確索引中提取正確的數據。將JSON解析爲對象數組

更新

這是我所得到的樣品,當我通過JSON.parse運行:

[{"Result":"Fail","Method":"T97E-v1","Beam1":{"BeamAge":"1","WidthUpper":1,"WidthCenter":1,"WidthLower":1,"WidthAverage":1,"DepthRight":1,"DepthCenter":1,"DepthLeft":1,"DepthAverage":1,"MaxLoad":1,"FS":18,"PSI":"18.00000","BreakOutside":"No"},"Beam2":{"BeamAge":"","WidthUpper":null,"WidthCenter":null,"WidthLower":null,"WidthAverage":null,"DepthRight":null,"DepthCenter":null,"DepthLeft":null,"DepthAverage":null,"MaxLoad":null,"FS":null,"PSI":"NaN"},"WaitForCuring":"No","AverageOfBeams":"NaN"}] 

更新2

這裏是周圍的代碼我在做:

try { 
    localStorage["flexuralStrengthSamples"] = JSON.stringify(JSON.stringify(t97Samples)); 
    var parsedObject = JSON.parse(localStorage["flexuralStrengthSamples"]); 

    console.log(parsedObject);      
    console.log(parsedObject[0].Beam1.MaxLoad);    
} catch (err) { 
    alert(err.message); 
} 
+0

好吧,但對於一些數據例如:將其存儲在localStorage的

try { localStorage["flexuralStrengthSamples"] = (JSON.stringify(t97Samples)); //Stringify only once, since localstorage values needs to be string var parsedObject = JSON.parse(localStorage["flexuralStrengthSamples"]); // should give the original object. console.log(parsedObject[0].Beam1.MaxLoad); // Since parsedObject is still string, this was failing. Now should work fine } catch (err) { alert(err.message); } 

看到這裏的工作小提琴之前,你stringyfying兩次?或者你可能已經試過一些代碼了?堆棧不是要求代碼的地方,而是提出具體問題。 – MorKadosh

+0

也許如果你告訴你正在使用的語言,你可以幫助我們來幫助你。如果您使用的是JavaScript,則問題不存在,因爲JSON是JavaScript對象的字符串序列化。所以用JSON.parse你應該沒問題。 –

+0

@PanamaJack我什麼都沒做,但破敗的代碼。我更新以顯示解析JSON時得到的結果。 –

回答

1

您可以使用JSON.parse()解析JSON。

更新
這裏是JSON.parse()您的數據的樣本。

[{"Result":"Fail","Method":"T97E-v1","Beam1":{"BeamAge":"1","WidthUpper":1,"WidthCenter":1,"WidthLower":1,"WidthAverage":1,"DepthRight":1,"DepthCenter":1,"DepthLeft":1,"DepthAverage":1,"MaxLoad":1,"FS":18,"PSI":"18.00000","BreakOutside":"No"}}]

爲了得到你的數據,你需要使用支架的符號,用於數組和點符號的對象。因此,假設data等於該JSON數組,那麼您可以執行data[0].Result,即"Fail"data[0].Beam1.MaxLoad,即1

+0

我已經這樣做了。 –

+0

讓我知道這個更新是否有幫助。 –

+0

我試過了。它總是給我錯誤「無法讀取未定義的屬性MaxLoad」。 –