如何将特殊字符串解析为JSON?

莫特萨·马尔万迪(Morteza Malvandi)

我有一个字符串如下:

"{'type': 'name', 'properties': {'name': 'urn:ogc:def:crs:EPSG::3857'}}"

我想将此字符串解析为JSON。

我怎样才能做到这一点?

普拉纳夫·C·巴兰(Pranav C Balan)

您提供的字符串不是有效的JSON。使用eval()方法或使其成为有效的JSON和解析有两个选项

使用eval()方法:

var obj = eval('(' + "{'type': 'name', 'properties': {'name': 'urn:ogc:def:crs:EPSG::3857'}}" + ')');

var obj = eval('(' + "{'type': 'name', 'properties': {'name': 'urn:ogc:def:crs:EPSG::3857'}}" + ')');

console.log(obj);

但是我不喜欢eval()方法,请参考:不要不必要地使用eval!


或通过将单引号替换为双引号将其转换为有效的JSON:

var obj = JSON.parse("{'type': 'name', 'properties': {'name': 'urn:ogc:def:crs:EPSG::3857'}}".replace(/'/g,'"'));

var obj = JSON.parse("{'type': 'name', 'properties': {'name': 'urn:ogc:def:crs:EPSG::3857'}}".replace(/'/g, '"'));

console.log(obj);

仅供参考:上面的代码仅'在属性名称或值中没有(单引号)的情况下才有效,否则将其替换为"在这种情况下,要生成JSON,您需要使用非常复杂的正则表达式。


但是将字符串本身初始化为有效的JSON并使用JSON.parse()method进行解析总是更好的方法。

{"type": "name", "properties": {"name": "urn:ogc:def:crs:EPSG::3857"}}

var obj = JSON.parse('{"type": "name", "properties": {"name": "urn:ogc:def:crs:EPSG::3857"}}');

console.log(obj);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章