java - 当服务器 JSON 响应不包含 Moshi 中的密钥时,为嵌套对象分配默认值?
问题描述
我Moshi
用来解析对对象的JSON
响应JAVA
。问题是当服务器不发送嵌套类的键值时,moshi 将其分配给null
. 虽然将默认值分配给基元和字符串等有效,但实例化嵌套类不起作用。
父客户类 -
public class Customer {
@Json(name = "id")
Integer id;
@Json(name = "test")
String test = "I'm batman!";
@Json(name = "default_address")
Address defaultAddress = new Address(-1, -1);
public Integer getId() {
return id;
}
public String getTest() {
return test;
}
}
地址类 -
public class Address {
@Json(name = "id")
Integer id;
@Json(name = "customer_id")
Integer customerId;
public Address(int id, int cusID) {
this.id = id;
this.customerId = cusID;
}
public Integer getCustomerId() {
return customerId;
}
public Integer getId() {
return id;
}
}
虽然响应不包含任何带有 name 的键test
,但它可以工作。但是当服务器不发送default_address
密钥时,defaultAddress
设置为null
.
解决方案
推荐阅读
- javascript - 将新加坡时间转换为 UTC 时间的时刻代码
- swiftui - 为什么 SwiftUI ContentView 中的屏幕总是黑屏
- kubernetes - 在 GKE 中动态部署有状态的应用程序
- discord - 我阻止人们将某人静音两次的预防措施不起作用
- c - 尊重 int malloc 指针
- python - django tmeplate 视图加载缓慢
- android - 如何根据我的数据库编写模型代码以获取
- django - Twilio 无法发送传真
- reactjs - 放大和反应:代码不匹配和失败启用软件令牌 MFA
- javascript - 返回最大的有效子集,其中值之间的差异在 K 范围内