使用Gson进行反序列化时跳过级别

zvokhttg  于 2022-11-06  发布在  其他
关注(0)|答案(1)|浏览(166)

大家好,我在用Gson反序列化我的json时遇到了一些麻烦。我通过一个简单的例子向大家展示我的问题:
这是我收到的JSON:

"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类来跳过一个级别:

public class SFOrderDto {

    private String id;

    private String name;

    @SerializedName("items.records")
    private List<SFProductDto> records;

}

主叫:

SFOrderDto orderArray = gson.fromJson(jsonOrder, SFOrderDto.class);

希望有人能帮助我,并为我糟糕的英语道歉!:)

watbbzwu

watbbzwu1#

我在这里找到了解决方案:Use jackson annotation JsonUnwrapped on a field with name different from its getter
添加@JsonUnwrapped解决了我的问题。

public class SFOrderDto {

    private String id;

    private String name;

    @JsonUnwrapped
    @SerializedName("items.records")
    private List<SFProductDto> records;

}

感谢@木瓜和@Michal Ziober试图帮助我:)

相关问题