2014-09-29 186 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('}'))));