javascript中无法将string转化为json对象

Posted 瑟荻

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript中无法将string转化为json对象相关的知识,希望对你有一定的参考价值。

在一次项目之中,我要对请求的相应做一些处理,得到的响应差不多是这中格式‘total:1,result:[“age”:1]’.可以看到我拿到的这个相应和JSON的格式是非常相似的,一开始我认为只要用JSON.parse进行转化,但是这始终会报错,无法进行转化。后来我用了个笨办法把前面的东西都去掉了拿到’[“age”:1]’进行转化。
后来我又找一找这个问题的原因,原来是我这个字符串中的key没有用双引号进行包裹,这并不是一个合法的JSON格式,它可以被人为是一个javascript对象,但还不是一个合法的JSON,所以无法解析。JSON对象是由对象成员组成,而成员是由key-value键值组成。key值是一个字符串,字符串由unicode字符组成,用双引号包围,用反斜杠转义。可以是单个字符。
但是在现实应用中,很少有人知道JSON里的key需要双引号来包裹的,浏览器里面的属性都是没有双引号的,从而返回的结果无法解析。
知道问题的原因,就自然而然有相应的解决办法了。第一个办法就是本办法,手工加上双引号,也就是用正则表达式匹配;另外一个方法就是用eval直接执行,
var obj = eval('('+str')')
不过你需要了解这个str里面到底有什么,这样才能防止一些恶意程序,避免带来安全问题。

以上是关于javascript中无法将string转化为json对象的主要内容,如果未能解决你的问题,请参考以下文章

c#中怎么将string转化为枚举

python中无法将string转化为float是啥原因,该怎样解决呢?

在.NET中如何将一个string对象转化为一个stringbuilder对象

将JavaScript转化为C#

el-table数据转化为json后如何转换

在js页面,怎么把string 类型转化为date 类型存入数据库