Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

1.2.47 当@JSONType 中指定了typeKey, 反序列化时会丢失此typeKey之前的所有字段 #1941

Closed
lazydan opened this issue Jul 3, 2018 · 4 comments
Labels
Milestone

Comments

@lazydan
Copy link

lazydan commented Jul 3, 2018

@JSONType(seeAlso = {FloorV2.class}, typeKey = "type")
public interface Area {
}

@JSONType(typeName = "floorV2")
public static class FloorV2 implements Area {
    public String type;
    public String templateId;
    public String name;
}

String json = "{\"type\":\"floorV2\",\"templateId\":\"x123\",\"name\":\"floorname2\"}";
Area  a=JSON.parseObject(json,Area.class);
System.out.println("name>>> " + a.name);

若json为 "{"type":"floorV2","templateId":"x123","name":"floorname2"}"时,反序列化完全正常

若json为"{"name":"floorname2","type":"floorV2","templateId":"x123"}";反序列化后,name字段为null

找到个类似的问题 #291

若我在FloorV2类中 设置@jsontype(... orders={"type","name","templateId"}) 或 设置type字段@JSONField(ordinal = -1)
想在反序列化的时候把type字段放在首位, 但是报如下错误:

com.alibaba.fastjson.JSONException
	at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:665)
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:365)
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:269)
	at com.alibaba.fastjson.JSON.parseObject(JSON.java:488)
	at com.mytest.jsontestMethod
Caused by: java.lang.NullPointerException
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:722)
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:271)
	at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:267)
	at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:661)
	... 38 more
@betorcs
Copy link

betorcs commented Jul 3, 2018

Same here for android

@wenshao wenshao added the bug label Jul 6, 2018
@wenshao wenshao added this to the 1.2.49 milestone Jul 6, 2018
@wenshao wenshao modified the milestones: 1.2.49, 1.2.50 Aug 4, 2018
wenshao added a commit that referenced this issue Aug 5, 2018
@wenshao wenshao modified the milestones: 1.2.50, 1.2.51 Aug 19, 2018
@lazydan lazydan closed this as completed Mar 24, 2019
wenshao added a commit that referenced this issue Apr 9, 2019
@xulcdev
Copy link

xulcdev commented May 10, 2019

这个问题并没有得到解决,1.2.58依然会有这样的问题

@MindSelf
Copy link

这个问题并没有得到解决,1.2.58依然会有这样的问题

android 1.1.71并没有解决该问题

@seethefruture
Copy link

1.2.72 same

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

6 participants