You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features) throws IOException {
if(object != null){
MetricType metricType = (MetricType)object;
serializer.getWriter().writeString(AbstractTerminalType.getDangerousVal(metricType));
}
}
@Override
public MetricType deserialze(DefaultJSONParser parser, Type type, Object fieldName) {
String in = parser.lexer.stringVal();
if(isNullOrEmpty(in)){
return null;
}else{
return new MetricType(in);
}
}
@Override
public int getFastMatchToken() {
return 0;
}
示例代码:
@Data
public static class A {
private MetricType test;
}
@SneakyThrows
public static void main(String[] args) {
ParserConfig.getGlobalInstance().setAutoTypeSupport(true);
Class.forName("sdp.common.utils.accuracy.GlobalAccuracyCodec");
A a = new A();
a.setTest(new MetricType("1.300"));
List<A> l = new ArrayList<>();
l.add(a);
String str = JSON.toJSONString(l, SerializerFeature.WriteClassName);
System.out.println(str);
Object[] objArr = JSON.parseArray(str).toArray();
System.out.println(Arrays.toString(objArr));
}
异常
[{"@type":"xxx.A","test":"1.300"}]
Exception in thread "main" com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos 65, fastjson-version 1.2.83
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:506)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseRest(JavaBeanDeserializer.java:1624)
at com.alibaba.fastjson.parser.deserializer.FastjsonASMDeserializer_1_A.deserialze(Unknown Source)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:287)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:405)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:1243)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseArray(DefaultJSONParser.java:1169)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:612)
at com.alibaba.fastjson.JSON.parseArray(JSON.java:592)
The text was updated successfully, but these errors were encountered:
2259289435
changed the title
自定义反序列化器失败,版本 最新 fastjson-version 1.2.83
自定义序列化器 bug,版本 最新 fastjson-version 1.2.83
May 6, 2023
自定义类型序列化
正常走了序列化,也走了反序列化器,但最后却报错了。
示例代码:
异常
The text was updated successfully, but these errors were encountered: