一尘不染

JSON中的键上缺少引号

node.js

我有一个包含格式错误的JSON的字符串,该字符串在缺少键的情况下提供给我。JSON的结构超出了我的控制范围,因此我需要使用已有的东西。我已经找到了OP可以在JavaScript中解析格式错误的JSON的解决方案,但是其中一个值包含一个RegEx匹配的URL,并将其转换为另一个键(如值),导致JSON真正损坏。有任何想法吗?

我也看过jsonrepair,但是在那里没有太大的成功。


阅读 275

收藏
2020-07-07

共1个答案

一尘不染

这应该做。您需要做的就是确定冒号后面是正斜杠(例如http://),而不是孤立的。请注意,如果您的JSON值之一包含冒号,则此操作将失败,因此对于您的用例,可能需要更多改进。

.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?:([^\/])/g, '"$2":$4');
2020-07-07