gpt4 book ai didi

java - 对象序列化为 json,仅限某些字段

转载 作者:行者123 更新时间:2023-12-02 12:10:10 27 4
gpt4 key购买 nike

我有一个大的嵌套对象。我想在 JSON 字符串中序列化该对象,但是我只需要包含某些字段。这里的问题是字段可能会非常频繁地更改,我想以一种可以帮助我轻松包含或排除序列化字段的方式构建它。

我知道我可以编写大量代码来提取某些字段并“手动”构建 JSON。但我想知道除了指定必填字段列表之外,是否还有其他优雅的方法可以实现类似的结果?

例如,具有以下对象结构,我希望在响应中仅包含 idname:

class Building {
private List<Flat> flats;
}

class Flat {
private Integer id;
private Person owner;
}


class Person {
private String name;
private String surname;
}

Json:

{
"flats" : [
{
"flat":
{
"id" : "1",
"person" : {
"name" : "John"
}
}
}
]
}

最佳答案

您可以使用gson用于序列化/反序列化 JSON。然后您可以包含 @Expose注释以仅使用您需要的字段。

请务必将您的 Gson 对象配置为仅序列化“公开”字段。

Gson gson = GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

替代方案:

实际上,您可以以相反的方式进行操作,标记不会公开的字段。您可以使用 transient 来执行此操作关键词。因此,无论您想忽略什么,只需添加 transient 即可。以下是它在 gson 上的工作原理.

PS:这也适用于大多数 Java JSON 序列化器。

关于java - 对象序列化为 json,仅限某些字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46603950/

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