将字符串转换为字符串化JSON

时间:2015-06-29 06:18:09

标签: javascript json

我收到的字符串看起来像是

"{option:{name:angshu,title:guha}}"

现在我必须从中创建一个有效的JSON字符串。有没有聪明的方法来转换它。我尝试使用字符串handelling,但这仍然需要很多条件。即使我尝试使用eval()也不起作用。

2 个答案:

答案 0 :(得分:3)

这个正则表达式将为提供的示例字符串提供技巧:

/:([^{},]+)/g

Regex101 analysis of it

: matches the character : literally  
1st Capturing group ([^{},]+)  
   [^{,}]+ match a single character not present in the list below  
       Quantifier: + Between one and unlimited times, as many times as possible,   giving back as needed [greedy]  
       {}, a single character in the list {}, literally  
g modifier: global. All matches (don't return on first match)  

基本上,它会查找:之后不是{},的所有字符。这些“单词”保存在第一个捕获组中,允许.replace使用$1重复使用它们。

您可以像这样使用正则表达式:

var raw = "{option:{name:angshu,title:guha}}",
    regex = /:([^{,}]+)/g,
    replacement = ':"$1"';

var jsonString = raw.replace(regex, replacement);

alert(jsonString);

答案 1 :(得分:-3)

如果您正在寻找JSON对象

,请尝试此操作
 string inputString = '{option:{name:angshu,title:guha}}';
 var obj = JSON.parse(inputString);