【发布时间】:2019-11-02 06:26:42
【问题描述】:
从 JSON 响应生成的 GSON JAVA 类。我正在尝试从 Address_.java 类中解析 Address1 和 Address。它是从 JSON 响应生成的。我正在使用 GSON 对其进行解析,并尝试从中读取 Address1 和 Address2 的值。我尝试了不同的解析方法,但尝试没有成功。
地址列表.java
public class AddressList {
@SerializedName("_embedded")
@Expose
private Embedded embedded;
public Embedded getEmbedded() {
return embedded;
}
public void setEmbedded(Embedded embedded) {
this.embedded = embedded;
}
}
Embedded.java
public class Embedded {
@SerializedName("address")
@Expose
private List<Address> address = null;
public List<Address> getAddress() {
return address;
}
public void setAddress(List<Address> address) {
this.address = address;
}
}
地址.java
public class Address {
@SerializedName("_links")
@Expose
private Links_ links;
@SerializedName("_embedded")
@Expose
private Object embedded;
@SerializedName("customer")
@Expose
private String customer;
@SerializedName("account")
@Expose
private String account;
@SerializedName("address1")
@Expose
private String address1;
@SerializedName("address2")
@Expose
private String address2;
public Links_ getLinks() {
return links;
}
public void setLinks(Links_ links) {
this.links = links;
}
public Object getEmbedded() {
return embedded;
}
public void setEmbedded(Object embedded) {
this.embedded = embedded;
}
public String getCustomer() {
return customer;
}
public void setCustomer(String customer) {
this.customer = customer;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getAddress1() {
return address1;
}
public void setAddress1(String address1) {
this.address1 = address1;
}
public String getAddress2() {
return address2;
}
public void setAddress2(String address2) {
this.address2 = address2;
}
}
GSON 响应
{
"_links": {
"self": {
"href": "https://xxxxx/xxx/address?where=xxx%20eq%20xx%20and%20customer%20eq%xxxx&page=1&pagesize=50"
}
},
"_embedded": {
"address": [
{
"_links": {
"self": {
"href": "https://xxxx/xxxx/xxxx/xxxx"
}
},
"_embedded": null,
"customer": "12345",
"account": "",
"address1": "111 ABC DR",
"address2": " ",
}
]
},
"totalItems": 1,
"pageSize": 50,
"totalPages": 1,
"currentPage": 1
}
有人可以帮帮我吗?谢谢
【问题讨论】:
-
仅作记录:您知道“_”在 Java 标识符中没有位置,除了 SOME_CONSTANT?我也想知道为什么你使用 @SerializedName ...即使在字段名称与你的序列化名称匹配的情况下?该注释只是为这些情况添加了线路噪音?!
-
我正在使用此链接创建 GSON 对象 - jsonschema2pojo.org
-
嗯,好吧。我只能说:“_”是不合法的,而不是添加这样的东西,我宁愿配置json来将一个名为totalItems的java字段变成total-items .因为 JSON(好吧,javascript)使用 kebap-case。但无论如何,这不是你要问的;-)
-
我做了一些改动。
-
public class Embedded { @SerializedName("address") @Expose private List address = null; public List getAddress() { 返回地址; } public void setAddress(List address) { this.address = address; } }
标签: java json rest parsing gson