java接口报com.alibaba.fastjson.JSONException: TODO

详细错误

com.alibaba.fastjson.JSONException: TODO
	at com.alibaba.fastjson.util.TypeUtils.getRawClass(TypeUtils.java:2019) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.util.TypeUtils.createCollection(TypeUtils.java:1981) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.serializer.CollectionCodec.deserialze(CollectionCodec.java:117) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer.parseField(DefaultFieldDeserializer.java:71) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:602) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:212) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:208) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:642) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:350) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:254) ~[fastjson-1.2.31.jar!/:na]
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:467) ~[fastjson-1.2.31.jar!/:na]
	at com.ylsw.monitor.controller.EnterpriseController.pageList(EnterpriseController.java:155) ~[classes!/:na]
	at com.ylsw.monitor.controller.EnterpriseController$$FastClassBySpringCGLIB$$88ea5d91.invoke() ~[classes!/:na]
	at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218) ~[spring-core-5.2.9.RELEASE.jar!/:5.2.9.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771) ~[spring-aop-5.2.9.RELEASE.jar!/:5.2.9.RELEASE]
	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163) ~[spring-aop-5.2.9.RELEASE.jar!/:5.2.9.RELEASE]
	at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749) ~[spring-aop-5.2.9.RELEASE.jar!/:5.2.9.RELEASE]
	at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:367) ~[spring-tx-5.2.9.RELEASE.jar!/:5.2.9.RELEASE]

报错信息没有说明具体哪里的问题,看到fastjson,想到代码里有调用其他服务返回后,有json数据的转换

       AAA aaa= aaaService.pageAaa(basePageQuery, aaaQueryDTO);
       Object object = aaa.getData();
        AAA aaa1= JSONObject.parseObject(JSONObject.toJSONString(aaa),AAA.class);

发现是同事写错了,第二行没有引用到,第三行自己转自己,改为下面的代码就可以了

        Object object = Service.pageAaa(basePageQuery, aaaQueryDTO);
        AAA aaa = JSONObject.parseObject(JSONObject.toJSONString(object),AAA .class);

课外话题:
com.alibaba.fastjson.JSONObject 常用方法及作用:
1.put(String key, Object value) ,在JSONObject 中设置键值对方法,设值的时候key应唯一,如果后面再次用使用过的key设值,只保留后面设置的值。
2.Object get(String key), 根据key获取JSONObject 对应的value,获取到的值如果是Object 类型,需手动转换数据类型。
3.int size(), 获取JSONObject 中键值对的数量。
4.boolean isEmpty(),判断该JSONObject 是否为空。
5.containsKey(Object key), 判断是否有需要的key
6.boolean containsValue(Object value),判断是否有需要的value
7.JSONObject getJSONObject(String key),如果JSONObject 中的value是一个JSONObject 对象,即根据key获取对应的JSONObject 对象
8.Object remove(Object key),根据key清除某一个键值对

// 因为JSONObject 本身就是一个map,因此有map特有的两个方法,
9.Set keySet(),获取JSONObject的key,并将其放入set集合中
10.Set> entrySet(),在循环遍历时使用,取得键和值的关系,Entry就是Map接口中的内部接口

11.static T parseObject(String text, Class clazz) ,调用的是父类JSON 的parseObject(String text, Class clazz),把一个JSONObject 转换为指定的类。
12.static String toJSONString(Object object),降object序列化 转换为json表示形式

11、12 通常结合使用,如

JSONObject.parseObject(JSONObject.toJSONString(object),AAA.class)

参看:https://blog.51cto.com/u_15730090/5510397

你可能感兴趣的:(java,java)