use*_*891 4 javascript regex json node.js
我有一个包含格式错误的JSON的字符串,它提供给我,其中键缺少引号.JSON的结构不受我的控制,所以我需要使用我拥有的东西.我已经找到了解析在PL中使用JavaScript中的格式错误的JSON工作的解决方案,但是其中一个值包含RegEx匹配的URL并将其转换为另一个键,如值,从而导致真正损坏的JSON.有任何想法吗?
我也看过jsonrepair,但在那里没有取得多大成功.
这应该做到这一点.你需要做的就是确定冒号后面跟着一个正斜杠(比如http://)而不是孤立的.请注意,如果您的某个JSON值中包含冒号,则会失败,因此可能需要对您的用例进行更多改进.
.replace(/(['"])?([a-zA-Z0-9_]+)(['"])?:([^\/])/g, '"$2":$4');
Run Code Online (Sandbox Code Playgroud)
如果JSON唯一的问题是没有引号的属性名称,那么即使它不是有效的JSON,它仍然是有效的JavaScript对象文字。
因此,如果您信任source,则可以将文本包装在括号内eval。
这将比任何正则表达式更简单,更可靠。
例:
var badJSON = '{ a: "b" }';
var obj = eval( '(' + badJSON + ')' );
console.log( obj ); // Logs: Object {a: "b"}
console.log( obj.a ); // Logs: b
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4103 次 |
| 最近记录: |