jsonObject Unknown property异常
2017-01-20 14:17
603 查看
原址https://my.oschina.net/heweipo/blog/368116
java.lang.NoSuchMethodException: Unknown property XXXX
具体解决,如下代码:
总结:
config配置项的作用就是过滤属性,出现这个Exception的原因有两点:
1)Json字符串属性过多,没有对应上javaBean的属性,所以程序会抛异常没有对应的属性。(使用gson不会出错)。
2)使用JsonConfig配置项过滤掉多余的属性。注意,是在字符串转为JSONObject的时候过滤。
3)JSONObject.toBean可以接收三个参数,这个接收三个参数的方法不要使用,会报错,而要使用接收两个参数的方法,另外,属性的过滤一定是在转为JSONObject的时候,而不是转Bean的时候。
4)JSONObject.fromObject(JSONObject.fromObject(result).getString("message"),config) 字符串转为JSONObject的时候过滤
5)(Message)JSONObject.toBean(JSONObject.fromObject(JSONObject.fromObject(result).getString("message"),config),Message.class); 不能使用(Message)JSONObject.toBean(JSONObject.fromObject(JSONObject.fromObject(result).getString("message"),config),Message.class,config);
否则又报错:
类转换异常
java.lang.NoSuchMethodException: Unknown property XXXX
具体解决,如下代码:
public class JsonTest { @Test public void testJson2(){ String json = "{'message':{'status':6000,'msg':'未知异常','success':'true'}}"; JsonConfig config = new JsonConfig(); config.setJavaPropertyFilter(new PropertyFilter(){ public boolean apply(Object paramObject1, String paramString, Object paramObject2) { if(paramString.equals("status")||paramString.equals("msg")){ return false; } return true; }}); Message message = (Message)JSONObject.toBean(JSONObject.fromObject(JSONObject.fromObject(json).getString("message"),config),Message.class); System.out.println(message.getStatus()); } }
总结:
config配置项的作用就是过滤属性,出现这个Exception的原因有两点:
1)Json字符串属性过多,没有对应上javaBean的属性,所以程序会抛异常没有对应的属性。(使用gson不会出错)。
2)使用JsonConfig配置项过滤掉多余的属性。注意,是在字符串转为JSONObject的时候过滤。
3)JSONObject.toBean可以接收三个参数,这个接收三个参数的方法不要使用,会报错,而要使用接收两个参数的方法,另外,属性的过滤一定是在转为JSONObject的时候,而不是转Bean的时候。
4)JSONObject.fromObject(JSONObject.fromObject(result).getString("message"),config) 字符串转为JSONObject的时候过滤
5)(Message)JSONObject.toBean(JSONObject.fromObject(JSONObject.fromObject(result).getString("message"),config),Message.class); 不能使用(Message)JSONObject.toBean(JSONObject.fromObject(JSONObject.fromObject(result).getString("message"),config),Message.class,config);
否则又报错:
类转换异常
相关文章推荐
- 使用JSONObject.fromObject的时候出现“There is a cycle in the hierarchy”异常 的解决办法
- 关于JSON to JAVA object的java.io.EOFException异常
- JSP解析JSONObject类型对象出现null object异常解决方案
- JSONObject.toBean解析日期异常
- JSONObject j=JSONObject.fromObject(map) 这部分后就没反应了,无任何异常抛出
- 记一次未解决的异常:java.lang.NoClassDefFoundError: net/sf/json/JSONObject
- Json解析异常处理方式(JSONException: Value of type java.lang.String cannot be converted to JSONObject)
- Android中JSONObject jb = new JSONObject(str)出现异常org.json.JSONException: Value of type java.lang.Str
- Value of type java.lang.String cannot be converted to JSONObject 异常
- 【JSON异常系列】new JSONObject对象时卡死原因
- ArcGIS Server10.1系统服务无法启动,报JSONObject异常
- 关于Json转换JSONObject数据异常问题
- 【JSON异常系列】new JSONObject对象时卡死原因
- JSONObject跳出java.lang.IllegalArgumentException异常
- 使用json发生java.lang.NoClassDefFoundError: net/sf/json/JSONObject异常的解决办法
- Could not get unknown property 'GROUP' for object of type org.gradle.api.publication.maven.internal.
- zeppelin 提交spark 任务异常:.JsonMappingException: Could not find creator property with name zeppelin
- 使用json发生java.lang.NoClassDefFoundError: net/sf/json/JSONObject异常的解决办法
- Error:Could not set unknown property 'supportHotplugComponent' for object of type com.tencent.bugly.
- java后台服务器向手机端返回Json, 使用 "net.sf.json.JSONObject" 解析出现的异常问题