我收到的字符串看起来像是
"{option:{name:angshu,title:guha}}"
现在我必须从中创建一个有效的JSON字符串。有没有聪明的方法来转换它。我尝试使用字符串handelling,但这仍然需要很多条件。即使我尝试使用eval()也不起作用。
答案 0 :(得分:3)
这个正则表达式将为提供的示例字符串提供技巧:
/:([^{},]+)/g
: 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);