淘先锋技术网

首页 1 2 3 4 5 6 7

Jackson 是一款用于 Java 的开源 JSON 处理库,能够通过嵌套 JSON 转换为扁平的 Java 对象。下面是使用 Jackson 进行嵌套 JSON 转扁平对象的示例。

// 定义嵌套 JSON 字符串
String nestedJson = "{ \"id\": 1, \"name\": \"John\", \"address\": { \"street\": \"Main St.\", \"city\": \"New York\" }, \"phoneNumbers\": { \"home\": \"123456789\", \"work\": \"987654321\" } }";
// 使用 ObjectMapper 将 JSON 转为 JsonNode 对象
ObjectMapper mapper = new ObjectMapper();
JsonNode rootNode = mapper.readTree(nestedJson);
// 定义扁平化后的 Java 对象类
public class FlatObject {
private int id;
private String name;
private String addressStreet;
private String addressCity;
private String phoneNumbersHome;
private String phoneNumbersWork;
// 必须提供一个无参数构造函数
public FlatObject() {}
// 定义 getter 和 setter 方法
// ...
}
// 扁平化 JsonNode 对象
FlatObject flatObject = new FlatObject();
flatObject.setId(rootNode.get("id").asInt());
flatObject.setName(rootNode.get("name").asText());
flatObject.setAddressStreet(rootNode.get("address").get("street").asText());
flatObject.setAddressCity(rootNode.get("address").get("city").asText());
flatObject.setPhoneNumbersHome(rootNode.get("phoneNumbers").get("home").asText());
flatObject.setPhoneNumbersWork(rootNode.get("phoneNumbers").get("work").asText());

如上述示例所示,使用 Jackson 进行嵌套 JSON 转扁平对象非常简单,只需要使用 ObjectMapper 将 JSON 转为 JsonNode 对象,再通过扁平化后的 Java 对象类进行设置即可。