2014-09-29 233 views
-1

我有問題, 我有字符串像「[prop1] [prop2] [prop3] = 5」..我需要將此字符串轉換爲JS對象,因此創建對象willl看起來像這個:轉換「字符串對象」爲對象

{ 
prop1: { 
    prop2: { 
    prop3: 5 
    } 
} 
} 

有什麼幫助嗎?感謝

+0

轉換爲JSON字符串而不是JSON.parse() - https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse – Cheery 2014-09-29 21:52:23

+1

您到目前爲止發現了什麼?你卡在哪裏?在問這個問題之前,你一定已經嘗試過* *了。 – 2014-09-29 21:54:09

+0

你嘗試過什麼嗎?分割字符串並循環其部分不應該太複雜 – Bergi 2014-09-29 21:54:18

回答

1

你舉的例子中沒有提到的數據(多少級,數據的類型等)的所有細節,所以......

var str = '[prop1][prop2][prop3] = 5' 
      .replace(/\[/g, '{"') 
      .replace(/\]/g, '":') 
      .replace('=', ''); 
console.log(JSON.parse(str + '}}}')); 

國防部任意組合層次的

var str = '[prop1][prop2][prop3] = 5'; 
var opens = str.match(/\[/g).length, 
    str = str.replace(/\[/g, '{"') 
      .replace(/\]/g, '":') 
      .replace('=', ''); 
console.log(JSON.parse(str + (new Array(opens + 1).join('}'))));