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
{{ message }}
This repository has been archived by the owner on Oct 23, 2024. It is now read-only.
@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:
Sign up for freeto subscribe to this conversation on GitHub.
Already have an account?
Sign in.
自定义类型序列化
正常走了序列化,也走了反序列化器,但最后却报错了。
示例代码:
异常
The text was updated successfully, but these errors were encountered: