gpt4 book ai didi

java - 反序列化更改内部节点的 JSON

转载 作者:行者123 更新时间:2023-11-29 21:25:42 25 4
gpt4 key购买 nike

服务器发送一个 JSON。格式不同。例如:

{
"firstName": "X",
"lastName": "XXX",
"address": {
"street": "John Street, 10",
"postalCode": "12311"
},
"phoneNumbers": [
"812 123-1234",
"916 123-4567"
]
}

但是服务器可以发送另一个JSON

{
"firstName": "X",
"lastName": "XXX",
"address": "John Street, 10",
"postalCode": "101101",
"phoneNumber": "812123-1234"
}

还有我的 Format1.java

public class Format1 {
@SerializedName("firstName")
public String firstName;

@SerializedName("lastName")
public String lastName;

@SerializedName("address")
public Address address;

public class Address {
@SerializedName("street")
public String street;

@SerializedName("postalCode")
public String postalCode;
}

@SerializedName("phoneNumbers")
public String[] phoneNumbers;
}

和Format2.java

public class Format2 {
@SerializedName("firstName")
public String firstName;

@SerializedName("lastName")
public String lastName;

@SerializedName("street")
public String street;

@SerializedName("postalCode")
public String postalCode;

@SerializedName("phoneNumber")
public String phoneNumber;
}

应用程序不知道将从服务器收到什么答复。Gson 如何理解要使用什么类?

最佳答案

如果您确定在 Format1 中成员名称是“phoneNumbers”,而在 Format2 中则是“phoneNumber”。您可以先查看 JSON 字符串来决定应该使用哪种类型的格式类。

更公平的方法可能是创建您自己的反序列化器方法并检查其中的名称和类型。

关于java - 反序列化更改内部节点的 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20254329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com