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

Javascript 将字符串转换为字符串化JSON,javascript,json,Javascript,Json,我得到一个字符串,如下所示 "{option:{name:angshu,title:guha}}" 现在,我必须从中生成一个有效的JSON字符串。有没有什么聪明的方法来转换它。我试过使用字符串处理,但这需要很多条件,仍然是针对具体情况的。甚至我也尝试了eval(),但它也不起作用。如果您正在寻找JSON对象,请尝试此方法 string inputString = '{option:{name:angshu,title:guha}}'; var obj = JSON.parse(inputS

我得到一个字符串,如下所示

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

现在,我必须从中生成一个有效的JSON字符串。有没有什么聪明的方法来转换它。我试过使用字符串处理,但这需要很多条件,仍然是针对具体情况的。甚至我也尝试了eval(),但它也不起作用。

如果您正在寻找JSON对象,请尝试此方法

 string inputString = '{option:{name:angshu,title:guha}}';
 var obj = JSON.parse(inputString);

如果要查找JSON对象,请尝试此操作

 string inputString = '{option:{name:angshu,title:guha}}';
 var obj = JSON.parse(inputString);

此正则表达式将对提供的示例字符串执行以下操作:

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

:匹配字符:按字面意思
第一个捕获组([^{},]+)
[^{,}]+匹配下表中不存在的单个字符
量词:+在一次和无限次之间,尽可能多的次数,根据需要回馈[贪婪]
{},列表中的单个字符{},字面意思
g修饰语:全局。所有比赛(第一场比赛不返回)
基本上,它会查找
后面不是
{},
的所有字符。这些“单词”保存在第一个捕获组中,该组允许
。替换
$1
重复使用它们

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

var raw=“{option:{name:angshu,title:guha}}”,
regex=/:([^{,}]+)/g,
替换=':“$1”';
var jsonString=raw.replace(regex,replacement);

警报(jsonString)此正则表达式将对提供的示例字符串执行以下操作:

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

:匹配字符:按字面意思
第一个捕获组([^{},]+)
[^{,}]+匹配下表中不存在的单个字符
量词:+在一次和无限次之间,尽可能多的次数,根据需要回馈[贪婪]
{},列表中的单个字符{},字面意思
g修饰语:全局。所有比赛(第一场比赛不返回)
基本上,它会查找
后面不是
{},
的所有字符。这些“单词”保存在第一个捕获组中,该组允许
。替换
$1
重复使用它们

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

var raw=“{option:{name:angshu,title:guha}}”,
regex=/:([^{,}]+)/g,
替换=':“$1”';
var jsonString=raw.replace(regex,replacement);

警报(jsonString)修复服务器代码以提交有效的JSON字符串。@Andreas必须同意。我遇到过将浏览器JSON对象转换为平面字符串以提交给服务器的问题,但我从未看到服务器将JSON对象作为平面字符串返回!这个JSON对象是作为AJAX响应来自服务器端的吗?如果是,则将其转换为JSON对象并发送,就像Rails中有一些_object.to_JSON一样。实际上,我使用phantomjs对大量JSFIDLE链接进行爬网,以分离HTML、CSS和JS文件。在这种情况下,我发现JSON代码中的JSON数据是这样来的。你是说JSON对象吗?如果是,则使用JSON.parse(“{option:{name:angshu,title:guha}}”)是否有任何聪明的方法来转换它->修复服务器代码以提交有效的JSON字符串。@Andreas必须同意。我遇到过将浏览器JSON对象转换为平面字符串以提交给服务器的问题,但我从未看到服务器将JSON对象作为平面字符串返回!这个JSON对象是作为AJAX响应来自服务器端的吗?如果是,则将其转换为JSON对象并发送,就像Rails中有一些_object.to_JSON一样。实际上,我使用phantomjs对大量JSFIDLE链接进行爬网,以分离HTML、CSS和JS文件。在这种情况下,我发现JSON代码中的JSON数据是这样来的。JSON本身是无效的,我不认为你可以解析它。为什么会有这样的结果?这不起作用,因为字符串是无效的JSON,这就是OP首先问这个问题的原因。JSON本身无效,我认为您无法解析它。为什么要对此进行投票?这不起作用,因为字符串是无效的JSON,这就是OP首先问这个问题的原因。好极了,哥们。。这救了我一天不客气。但是,请记住,当您的字符串包含以下
{}、
字符之一时,这将中断。regex远不是防弹的,好家伙。。这救了我一天不客气。但是,请记住,当您的字符串包含以下
{}、
字符之一时,这将中断。正则表达式远非防爆的。