纠结的JSONException异常..... net.sf.json.JSONException: Missing value. at character的问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了纠结的JSONException异常..... net.sf.json.JSONException: Missing value. at character的问题相关的知识,希望对你有一定的参考价值。
今天遇到一问题:通过浏览器url方式将json作为参数传递,在后台无法解析,在转为时候JSONArray抛出如下异常:[问题,若将相同的json代码直接放到后台程序中可以正常解析],请问是否有遇到过相同问题的,应该如何处理.先谢过!!!!!!!!!
net.sf.json.JSONException: Missing value. at character 2 of [\"Command\":\"1\",\"Name\":\"PARAM\",\"Type\":\"Request\",\"Params\":[\"MAX\":\"40\",\"MODE\":\"1\",\"SELECT\":\"1904\",\"TIME\":\"0\",\"iMAX\":\"700\",\"iMIN\":\"10\",\"iMODE\":\"0\",\"iNESS\":\"10\",\"iSH\":\"0\",\"iSM\":\"0\",\"iTI\":\"41\",\"mark\":\"4\"],\"Con\":]
at net.sf.json.util.JSONTokener.syntaxError(JSONTokener.java:505)
at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:377)
at net.sf.json.JSONObject._fromJSONTokener(JSONObject.java:1161)
at net.sf.json.JSONObject.fromObject(JSONObject.java:155)
at net.sf.json.util.JSONTokener.nextValue(JSONTokener.java:347)
at net.sf.json.JSONArray._fromJSONTokener(JSONArray.java:1132)
at net.sf.json.JSONArray._fromString(JSONArray.java:1198)
at net.sf.json.JSONArray.fromObject(JSONArray.java:127)
at net.sf.json.JSONArray.fromObject(JSONArray.java:105)
at com.tiandy.dxx.dao.jdbc.WebServiceDaoJdbc.getJSONMap(WebServiceDaoJdbc.java:172)
at com.tiandy.dxx.dao.jdbc.WebServiceDaoJdbc.ocxOperate(WebServiceDaoJdbc.java:380)
at com.tiandy.dxx.service.impl.WebServiceManagerImpl.ocxOperate(WebServiceManagerImpl.java:36)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
..........................................
replaceAll里面用的是正则表达式,所以字符串转义一次,正则转义一次,所以一个斜扛要写4个,用replaceAll( "\\\\ ", " "); 参考技术A 帅哥,将从url中传递过来的值中符号\去掉解析即可。 参考技术B 我也遇到这个问题了,兄弟你是怎么解决的,急啊!
解决com.alibaba.fastjson.JSONException: autoType is not support 异常处理
最近在使用spring-data-redis时,使用fastjson的序列化方式
GenericFastJsonRedisSerializer
可以正常序列化,但在反序列化时发生了如下异常com.alibaba.fastjson.JSONException: autoType is not support. com.hongshu.groovy.dto.Account。
仔细阅读了fastjson.ParserConfig源码,发现在1078行发生了异常
因为在GenericFastJsonRedisSerializer中,如下所示,把autoTypeSupport设置为true,
所以导致异常产生的原因是因为在fastjson在反序列化时,build JavaBeanInfo时。对是否有默认的构造方法做了检查。看到原因后,直接去自己的Domain中去查看,果然是没有默认的构造的方法。
总结:在使用fastjson类序列化时,尤其是redis这个序列的支持,在类中要加保证一默认的构造方法,否则在进行反序列化时,fastjosn根据typeName进行反序列化,会发生该异常
以上是关于纠结的JSONException异常..... net.sf.json.JSONException: Missing value. at character的问题的主要内容,如果未能解决你的问题,请参考以下文章
解决com.alibaba.fastjson.JSONException: autoType is not support 异常处理
解决com.alibaba.fastjson.JSONException: autoType is not support 异常处理
fastJson反序列化异常,JSONException: expect ':' at 0, actual =
ajax请求json数据异常:nested exception is net.sf.json.JSONException: java.lang.reflect.InvocationTargetExce
急!ssh+json 空指针异常(net.sf.json.JSONException: java.lang.NullPointerException)
json数据转换异常:net.sf.json.JSONException: java.lang.reflect.InvocationTargetException