Java 使用Gson反序列化时跳过级别
大家好,我很难用Gson反序列化我的json。 我通过一个简单的例子向您说明我的问题: 这是我收到的JSON:Java 使用Gson反序列化时跳过级别,java,json,serialization,gson,Java,Json,Serialization,Gson,大家好,我很难用Gson反序列化我的json。 我通过一个简单的例子向您说明我的问题: 这是我收到的JSON: "order": { "id": "123", "name": "BOBI", "items": { "totalSize": 2, "records": [
"order": {
"id": "123",
"name": "BOBI",
"items": {
"totalSize": 2,
"records": [
{
"id": "456",
"Quantity": 1.0,
"Description": "Shipping",
"TotalAmount": 6.29,
"TotalTaxAmount": 0.3,
"UnitPrice": 5.99
}
]
}
}
我想删除/跳过此无用部分:
"totalSize": 2,
"records": [
我需要一个类似于@SerializedName(“items.records”)的功能,通过使用如下Java类跳过一个级别:
公共类sfordto{
私有字符串id;
私有字符串名称;
@SerializedName(“items.records”)
私人名单记录;
}
主要呼吁:
SFOrderDto orderArray=gson.fromJson(jsonOrder,SFOrderDto.class);
希望有人能帮助我,并为我糟糕的英语道歉!:) 我在这里找到了解决方案: 添加@JsonUnwrapped解决了我的问题
公共类sfordto{
私有字符串id;
私有字符串名称;
@JsonUnwrapped
@SerializedName(“items.records”)
私人名单记录;
}
感谢@papaya和@Michal Ziober试图帮助我:)你试过@JsonIgnore吗?你需要实现定制的
JsonDeserializer
接口。请参见示例:@JsonIgnore也将忽略所有孩子。。我只需要跳过项目和记录之间的无用级别。因此项目将获得记录数组。