在我的案例中,如何修复无效的JSON
How to fix the invalid JSON in my case?
我有一个无效的json字符串数据从postgres数据库返回。
这是一个无效字符串,数据类似
{"{'"title'":'"john'"}","{'"tel'":'"12345'"}"}
在我的代码中,我使用以下内容使其有效:
var newJson = '"' + mydata.info.replace(/","/g, ",").replace(/^{"/, "[").replace(/"}$/, "]") + '"';
然而,当我执行JSON.parse(newJson)
时,它仍然给我字符串而不是对象。
在替换方法之后,newJson值如下
console.log(newJson) => "["{'"title'":'"john'"},{'"tel'":'"12345'"}"]"
有趣的是,如果我直接指定它,比如:
newJson = "["{'"title'":'"john'"},{'"tel'":'"12345'"}"]"
newJson = JSON.parse(newJson)
console.log(typeof newJson) => object
它实际上会给我一个对象。
我已经和这个无效的json斗争了好几个小时,真的不知道我还能做什么。有人能帮忙吗?非常感谢!
您应该像注释中建议的那样修复保存在DB中的数据,数据是多次json编码的。
如果这真的不可能,你可以试着用这样的东西来阅读(未经测试(:
// First replace the first and last {} with []
var arrStr = '[' + json.substring(1, json.length - 1) + ']';
// Parse it as an array of strings
var arr = JSON.parse(arrStr);
// Cycle every item in the array and parse it
var results = [];
for (var i = 0; i < arr.length; i++) {
results.push(JSON.parse(arr[i]));
}
newJson = JSON.parse(JSON.stringify(newJson))
尝试使用此
相关文章:
- 我如何修复包含在captcha的addthis中的错误
- 如果我在javascript中输入无效的电子邮件或空白,如何显示特定的文本框边框红色
- 我可以'我似乎不知道如何修复javascript中的两个lint.有人能帮我理解吗
- 自动修复”;语句前缺少分号“;
- jquery代码在Mozilla中有效,但在其他浏览器上无效
- 滚动以修复向上滚动的问题
- 这个问号在Flow中意味着什么:“;?()=>“无效”;
- 从字符串末尾删除空白无效
- Datatables查询url字符串:需要regex来修复url解析
- 修复选择菜单时的背景图像
- 如何修复FF和IE中的Javascript无效日期错误
- 我怎样才能修复我的代码,以便<罢工>不会使我的 Javascript 代码无效
- 用于修复无效html的Javascript
- 如何使用node.js修复Twilio中无效的内容类型标头
- 修复无效JSON的最有效方法
- 修复Javascript无效的正则表达式:无效的组
- 用于修复无效 JSON 的正则表达式
- 如何在下面修复这个无效的正则表达式标志
- 修复/修复无效HTML使用Javascript/jquery
- 在我的案例中,如何修复无效的JSON