JSON解析无效字符串的有效行
JSON parse valid rows of invalid string
我需要用json.parse()解析一个json字符串,但有时输入不是完整的格式。例如:
{
"x" : "x",
"x1" : "x1",
"x2" : "x2,
"x3" :
解析显然正在崩溃。但在这种情况下,我想"保存"有效的行。
有可能吗?
以下是您可以做的:
String.prototype.safeParser = function(){
try{
var that=this;
return JSON.parse(this);
}
catch(err){
if(this.length<3){
return {};
}
else if(this.charAt(this.length - 1) == "}"){
that = this.substring(0, this.length - 2) + "}";
}
else{
that = this.substring(0, this.length - 1) + "}";
}
return that.safeParser();
}
}
并像console.log(json_string.safeParser());
一样使用它
它检查字符串是否是有效的json,如果不是,它会检查字符串是否以大括号结束,一次删除一个字符,直到它是有效的json。
注意:此特定代码仅适用于带大括号的对象,而不适用于带方括号的数组。然而,这可能并不难实现。
JS Fiddle演示
(打开控制台)相关文章:
- 如何有效地将游戏数据存储在URL查询字符串中
- 如何在javascript中将字符串转换为有效日期
- Javascript:字符串中有效的基于数组的替换
- 为什么字符串与数字的比较在Javascript中有效
- 在保持字符串同等有效的情况下对其进行视觉加扰
- 获取字符串中最后一个换行符的最有效方法是什么
- 通过字符串最有效的方法是什么;s字符
- 检查字符串是否为有效的html标记
- jQuery.parseJSON()未在Windows服务器上解码有效的Json字符串
- 从任何jquery选择器字符串创建元素的最有效方法
- Javascript正则表达式,用于检查字符串是否为有效数字
- 正在将字符串转换为有效的JSON对象
- 使用有效的端口号和查询字符串验证URL
- 具有少量特殊字符的字符串的有效正则表达式
- 如何测试字符串是否有效日期是否使用时刻
- XMLHttpRequest POST 请求到当前 URL 的有效 URL 字符串
- 在 JavaScript 中,数组如何引用到空字符串 + true 中是一个有效字符
- 什么在技术上更有效来匹配预期的字符串
- 创建一个比这更有效的长字符串
- 将字符串转换为在json中使用的有效字符串