现在有个问题,从第三方平台取来的json字符串,前三个json对象没有反斜杠,后面的却都有,导致转Java对象的时候出现JsonMappingException异常,这个怎么解决??
类似:{"a":1,"b":2,"c":"{\"c1\":\"ccc\"}"}这种
这个问题是第三方传递过来的json值,例如c下的值,它是一个json字符串,直接赋给c,就会出现空格,需要处理下,例如
var le = $.parseJSON(datas);//datas为c下的json字符串
var dss=jQuery.parseJSON('{"total":null ,"page": 1,"c":[]}');//将c下的字符串循环拿出,放入新的json中,就不会出现'\'
if(le && le.length>0){
dss["total"]= le.length;
for(var i=0;i<le.length;i++){
var fkdRw={
"HTH":le[i].HTH,
"WLDW":le[i].WLDW,
"WLDWMC":le[i].WLDWMC,
"JLBH":le[i].JLBH,
"FPHM":le[i].FPHM,
"FPJE":le[i].FPJE,
"KPRQ":le[i].KPRQ,
"YWSHRQ":le[i].YWSHRQ,
};
dss["c"].push(fkdRw);
}
}
因为它传过来的是一个json的字符串,你直接,string.replace("\","");最快。
异常与反斜杠有什么关系?
反斜杠是json在toString的时候 反斜杠是在转义你的引号。在我看来异常并不是反斜杠报的。。。
晕,根本不需要补上反斜杠,补上太麻烦怎么也想不到怎么补,然后就把他的全部斜杆去掉了,去掉好去。。。。
方法:
String s2 = s1.replace("\\", "");
结果正确!
你可以试试先去掉反斜杠再解析
去掉斜杠 然后再解析 就可以了
String.replace("\","")
来源问题,如果他能处理是最好
你是用的哪种方法?
试试这个:http://blog.csdn.net/testcs_dn/article/details/42711339
问题已经解决了,是不断的替换里面引起报错的空格,反斜杠,换行符标志等等,基本就是replace(),把第三方传来的不正常的json给他搞正常喽,就是有些繁琐。各位有高招的还可以继续说说!