我有类似 JSON 的字符串,如下所示:
{key1:my.value1,key2:value2}
它不能有任何嵌套对象或数组。 我什至可以用正则表达式证明它总是这样
var re = /^\{[A-Z0-9._]+:[A-Z0-9._]+(,[A-Z0-9._]+:[A-Z0-9._]+)*\}$/i;
console.log( re.test('{key1:my.value1,key2:value2}') ) // true
它看起来非常相似,但它不是有效的 JSON,所以我无法迭代它。
问题: 有没有办法从这个 JSON 类似字符串中生成有效的 JSON?
我正在考虑一些正则表达式或其他东西,但真的不知道如何制作它。有什么建议吗?
结果: 从上面的 json 来看,我的有效 JSON 应该如下所示:
{
"key1": "my.value1",
"key2": "value2"
}
最佳答案
如果它始终采用这种格式,我可能会这样做:
- trim 大括号
- 将剩余字符串分割为
,
,然后你会得到一个像这样的数组:['key:my.value1', 'key2:my.value2']
- 迭代该列表中的所有条目,并将每个条目按
:
分割。 ,这将为您提供键/值对
如果您需要的只是迭代整体,那么您就可以开始了。如果要将其转换为 json,请创建一个新映射并将键/值对放入其中。
关于javascript - 从像字符串一样的 JSON 生成有效的 JSON - 正则表达式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39699718/