在本文中,我们将给您介绍关于FastJson解析报错deserializererror的详细内容,并且为您解答fastjson解析报错unclosed.str.lit的相关问题,此外,我们还将为您提供
在本文中,我们将给您介绍关于FastJson 解析报错deserializer error的详细内容,并且为您解答fastjson 解析报错 unclosed.str.lit的相关问题,此外,我们还将为您提供关于com.alibaba.fastjson.parser.deserializer.ArrayListStringFieldDeserializer的实例源码、com.alibaba.fastjson.parser.deserializer.ArrayListTypeFieldDeserializer的实例源码、com.alibaba.fastjson.parser.deserializer.ASMDeserializerFactory的实例源码、com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer的实例源码的知识。
本文目录一览:- FastJson 解析报错deserializer error(fastjson 解析报错 unclosed.str.lit)
- com.alibaba.fastjson.parser.deserializer.ArrayListStringFieldDeserializer的实例源码
- com.alibaba.fastjson.parser.deserializer.ArrayListTypeFieldDeserializer的实例源码
- com.alibaba.fastjson.parser.deserializer.ASMDeserializerFactory的实例源码
- com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer的实例源码
FastJson 解析报错deserializer error(fastjson 解析报错 unclosed.str.lit)
title: FastJson 解析报错deserializer error
date: 2015-08-24 19:59:08
categories: ANDROID
tags: fastjson
小小程序猿
我的博客:http://daycoding.com
junit 测试解析json数据报错
com.alibaba.fastjson.JSONException: create asm deserializer error, com.dituwuyou.bean.User
at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:529)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:430)
at com.alibaba.fastjson.parser.ParserConfig.getDeserializer(ParserConfig.java:351)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:548)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:251)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:227)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:186)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:304)
at com.dituwuyou.service.impl.UserService.getUserInfo(UserService.java:108)
at com.dituwuyou.service.impl.UserService.bindUmengNotifacation(UserService.java:80)
at com.dituwuyou.service.impl.UserService_.access$001(UserService_.java:11)
at com.dituwuyou.service.impl.UserService_$1.execute(UserService_.java:44)
at org.androidannotations.api.BackgroundExecutor$Task.run(BackgroundExecutor.java:393)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at com.alibaba.fastjson.parser.deserializer.ASMDeserializerFactory.createJavaBeanDeserializer(ASMDeserializerFactory.java:110)
at com.alibaba.fastjson.parser.ParserConfig.createJavaBeanDeserializer(ParserConfig.java:520)
... 19 more
Caused by: java.lang.LinkageError: com/alibaba/fastjson/parser/ParserConfig
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.createFieldDeserializer(ASMJavaBeanDeserializer.java:41)
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer$InnerJavaBeanDeserializer.createFieldDeserializer(ASMJavaBeanDeserializer.java:90)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.addFieldDeserializer(JavaBeanDeserializer.java:82)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.<init>(JavaBeanDeserializer.java:47)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.<init>(JavaBeanDeserializer.java:38)
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer$InnerJavaBeanDeserializer.<init>(ASMJavaBeanDeserializer.java:81)
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer$InnerJavaBeanDeserializer.<init>(ASMJavaBeanDeserializer.java:78)
at com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer.<init>(ASMJavaBeanDeserializer.java:16)
at Fastjson_ASM_User_2.<init>(Unknown Source)
... 25 more
解决方案
设置ParserConfig.getGlobalInstance().setAsmEnable(false);
参考
FastJson 官方github issue
com.alibaba.fastjson.parser.deserializer.ArrayListStringFieldDeserializer的实例源码
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,Class<?> clazz,FieldInfo fieldInfo) { Class<?> fieldClass = fieldInfo.getFieldClass(); if (fieldClass == boolean.class || fieldClass == Boolean.class) { return new BooleanFieldDeserializer(mapping,clazz,fieldInfo); } if (fieldClass == int.class || fieldClass == Integer.class) { return new IntegerFieldDeserializer(mapping,fieldInfo); } if (fieldClass == long.class || fieldClass == Long.class) { return new LongFieldDeserializer(mapping,fieldInfo); } if (fieldClass == String.class) { return new StringFieldDeserializer(mapping,fieldInfo); } if (fieldClass == List.class || fieldClass == ArrayList.class) { Type fieldType = fieldInfo.getFieldType(); if (fieldType instanceof ParameterizedType) { Type itemType = ((ParameterizedType) fieldType).getActualTypeArguments()[0]; if (itemType == String.class) { return new ArrayListStringFieldDeserializer(mapping,fieldInfo); } } return new ArrayListTypeFieldDeserializer(mapping,fieldInfo); } return new DefaultFieldDeserializer(mapping,fieldInfo); }
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,fieldInfo); }
com.alibaba.fastjson.parser.deserializer.ArrayListTypeFieldDeserializer的实例源码
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,Class<?> clazz,FieldInfo fieldInfo) { Class<?> fieldClass = fieldInfo.getFieldClass(); if (fieldClass == Boolean.TYPE || fieldClass == Boolean.class) { return new BooleanFieldDeserializer(mapping,clazz,fieldInfo); } if (fieldClass == Integer.TYPE || fieldClass == Integer.class) { return new IntegerFieldDeserializer(mapping,fieldInfo); } if (fieldClass == Long.TYPE || fieldClass == Long.class) { return new LongFieldDeserializer(mapping,fieldInfo); } if (fieldClass == String.class) { return new StringFieldDeserializer(mapping,fieldInfo); } if (fieldClass == List.class || fieldClass == ArrayList.class) { return new ArrayListTypeFieldDeserializer(mapping,fieldInfo); } return new DefaultFieldDeserializer(mapping,fieldInfo); }
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,FieldInfo fieldInfo) { Class<?> fieldClass = fieldInfo.getFieldClass(); if (fieldClass == boolean.class || fieldClass == Boolean.class) { return new BooleanFieldDeserializer(mapping,fieldInfo); } if (fieldClass == int.class || fieldClass == Integer.class) { return new IntegerFieldDeserializer(mapping,fieldInfo); } if (fieldClass == long.class || fieldClass == Long.class) { return new LongFieldDeserializer(mapping,fieldInfo); } if (fieldClass == String.class) { return new StringFieldDeserializer(mapping,fieldInfo); } if (fieldClass == List.class || fieldClass == ArrayList.class) { return new ArrayListTypeFieldDeserializer(mapping,fieldInfo); } return new DefaultFieldDeserializer(mapping,fieldInfo); }
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,fieldInfo); }
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,fieldInfo); } if (fieldClass == List.class || fieldClass == ArrayList.class) { Type fieldType = fieldInfo.getFieldType(); if (fieldType instanceof ParameterizedType) { Type itemType = ((ParameterizedType) fieldType).getActualTypeArguments()[0]; if (itemType == String.class) { return new ArrayListStringFieldDeserializer(mapping,fieldInfo); } } return new ArrayListTypeFieldDeserializer(mapping,fieldInfo); }
public FieldDeserializer createFieldDeserializerWithoutASM(ParserConfig mapping,fieldInfo); }
com.alibaba.fastjson.parser.deserializer.ASMDeserializerFactory的实例源码
public void test_asm() throws Exception { ASMDeserializerFactory factory = new ASMDeserializerFactory(new ASMClassLoader()); Exception error = null; try { JavaBeanInfo beanInfo = JavaBeanInfo.build(int.class,int.class,null); factory.createJavaBeanDeserializer(ParserConfig.getGlobalInstance(),beanInfo); } catch (Exception ex) { error = ex; } assertNotNull(error); }
public ParserConfig(ASMDeserializerFactory asmFactory) { this(asmFactory,null); }
public ParserConfig(ASMDeserializerFactory asmFactory){ this(asmFactory,null); }
public ParserConfig() { this(ASMDeserializerFactory.getInstance()); }
public ParserConfig(ClassLoader parentClassLoader){ this(new ASMDeserializerFactory(parentClassLoader)); }
com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer的实例源码
public Map<String,FieldDeserializer> getFieldDeserializers(Class<?> clazz) { ObjectDeserializer deserizer = getDeserializer((Type) clazz); if (deserizer instanceof JavaBeanDeserializer) { return ((JavaBeanDeserializer) deserizer).getFieldDeserializerMap(); } if (deserizer instanceof ASMJavaBeanDeserializer) { return ((ASMJavaBeanDeserializer) deserizer).getInnterSerializer().getFieldDeserializerMap(); } return Collections.emptyMap(); }
public Map<String,FieldDeserializer> getFieldDeserializers(Class<?> clazz) { ObjectDeserializer deserizer = getDeserializer(clazz); if (deserizer instanceof JavaBeanDeserializer) { return ((JavaBeanDeserializer) deserizer).getFieldDeserializerMap(); } else if (deserizer instanceof ASMJavaBeanDeserializer) { return ((ASMJavaBeanDeserializer) deserizer).getInnterSerializer().getFieldDeserializerMap(); } else { return Collections.emptyMap(); } }
public Map<String,FieldDeserializer> getFieldDeserializers(Class<?> clazz) { ObjectDeserializer deserizer = getDeserializer(clazz); if (deserizer instanceof JavaBeanDeserializer) { return ((JavaBeanDeserializer) deserizer).getFieldDeserializerMap(); } else if (deserizer instanceof ASMJavaBeanDeserializer) { return ((ASMJavaBeanDeserializer) deserizer).getInnterSerializer().getFieldDeserializerMap(); } else { return Collections.emptyMap(); } }
关于FastJson 解析报错deserializer error和fastjson 解析报错 unclosed.str.lit的问题我们已经讲解完毕,感谢您的阅读,如果还想了解更多关于com.alibaba.fastjson.parser.deserializer.ArrayListStringFieldDeserializer的实例源码、com.alibaba.fastjson.parser.deserializer.ArrayListTypeFieldDeserializer的实例源码、com.alibaba.fastjson.parser.deserializer.ASMDeserializerFactory的实例源码、com.alibaba.fastjson.parser.deserializer.ASMJavaBeanDeserializer的实例源码等相关内容,可以在本站寻找。
本文标签: