2012-04-21 105 views
0

這個問題可能已經被問到了。但我真的不知道要搜索什麼。將結構化字符串轉換爲數組

如果我有一個字符串象

{{aa:bb,aaa:bbb,cc:ee{{aa:cd,cdc:dd,{{ss:ee}},kk:ee}},se:ff}} 

我需要輸出在大概在陣列

AR [0] = AA:BB,AR [1] = AAA:BBB,AR [ 3] = {{...}}

我使用variable.split("}}")

被打破了串並沒有得到實際的數據嘗試。

是否有任何遞歸函數來做到這一點? 我無法搜索,因爲我不清楚什麼對象,字符串。

+1

你將不得不弄清楚你的字符串應該如何映射到某個數據結構,然後你必須編寫一個解析器來完成轉換。 – Pointy 2012-04-21 14:17:40

+0

你必須要麼做Pointy說的,要麼我會推薦你​​使用JSON並使用內置的'JSON.parse()'。 – robbrit 2012-04-21 14:18:33

回答

0

我想你在找什麼是如何解析一個JSON字符串到一個對象。我不確定,但至少看起來像基於字符串格式。你能確認源是否提供JSON輸出嗎?

如果是:

this其他SO問題。

+0

他使用的格式不是JSON,它是一些自定義格式。 – robbrit 2012-04-21 14:19:02

+0

對不起,我只是添加了一些評論。 – Christian 2012-04-21 14:21:07

+0

評論不是答案。 – Gumbo 2012-04-21 14:21:39

1

如果您使用現有的格式構建你的字符串,如JSON:

["aa:bb","aaa:bbb","cc:ee",["aa:cd","cdc:dd",["ss:ee"],"kk:ee"],"se:ff"] 

然後,你可以通過只運行JSON.parse()它。 - 這會比試圖解讀該字符串的含義而不被告知它的含義容易得多。

+0

您始終可以通過正則表達式將自定義格式轉換爲JSON。 – Manishearth 2012-04-21 14:21:55

+0

這將是背後真正的痛苦,並且可能比僅僅改變其生成的字符串格式更困難。 cc:ee {{aa:cd ...'部分意味着什麼? – 2012-04-21 14:23:30

+1

好點。讓OP做gruntwork :) – Manishearth 2012-04-21 14:32:49