javascript - 从像字符串一样的 JSON 生成有效的 JSON - 正则表达式?

标签 javascript json regex

我有类似 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/

相关文章:

java - Jersey 在 Restful 服务中将 HashMap 序列化为 json 最简单的方法是什么?

java - 提取消息中包含连接字符的字符串

javascript - jQuery 不会使用 animate : top 200px function. 执行,但它会使用 animate: height 执行

javascript - Bootstrap 上的嵌套下拉切换不起作用

javascript - 在 bootstrap.css 主题之间动态切换

java - 使用 JQuery 在 Javascript 中解析外部 JSON 文件(包含数组元素)

javascript - 第 0 行错误。Google jquery api

javascript - 列出 JSON 名称

javascript - 正则表达式中的 $0 和 $1

regex - 如何从字符串中提取前两位数字?