gpt4 book ai didi

java - 如何将平面 JSON 转换为分层 java 类?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:00:40 24 4
gpt4 key购买 nike

我需要将一个平面 JSON 对象反序列化为一个 Java 对象,并将某些属性设置为子对象。

{
"name": "abcd",
"addressLine1": "123",
"addressLine2": "1111"
}

Class Student {
String name;
Address address;
}

Class Address {
String line1;
String line2;
}

如何使用 Jackson 将我的 JSON 反序列化为 Student 对象?我无法将 addressLine1 映射到 Student.Address.line1addressLine2 到 Student.Address.line2

最佳答案

你可以这样定义你的数据类:

  public static class Student {
String name;

@JsonUnwrapped
Address address;
}

public static class Address {
@JsonProperty("addressLine1")
String line1;
@JsonProperty("addressLine2")
String line2;
}

然后您可以以通常的方式使用 Objectmapper - 无需任何额外的魔法或解决方法:

Student student = mapper.readValue(json, Student.class);

如果您传入的 json 字符串确实是您提供的格式(不带引号),那么还要添加:

mapper.configure(JsonParser.Feature.ALLOW_UNQUOTED_FIELD_NAMES, true);

关于java - 如何将平面 JSON 转换为分层 java 类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54386011/

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