嵌套的JSON to Java对象List<Object>返回期望值,而List<DefinedObject>返回空值。
对于嵌套的JSON数据转换为Java对象,可以使用JSON库来实现。常用的JSON库有Jackson、Gson等。以下是一个示例代码,演示如何将嵌套的JSON转换为Java对象列表:
import com.fasterxml.jackson.databind.ObjectMapper;
import java.io.IOException;
import java.util.List;
public class JsonToJavaExample {
public static void main(String[] args) {
String json = "{\"data\": [{\"name\": \"John\", \"age\": 25}, {\"name\": \"Jane\", \"age\": 30}]}";
ObjectMapper objectMapper = new ObjectMapper();
try {
// 将JSON转换为List<Object>
List<Object> objectList = objectMapper.readValue(json, List.class);
System.out.println("List<Object>: " + objectList);
// 将JSON转换为List<DefinedObject>
List<DefinedObject> definedObjectList = objectMapper.readValue(json, objectMapper.getTypeFactory().constructCollectionType(List.class, DefinedObject.class));
System.out.println("List<DefinedObject>: " + definedObjectList);
} catch (IOException e) {
e.printStackTrace();
}
}
static class DefinedObject {
private String name;
private int age;
// 省略构造函数、getter和setter方法
@Override
public String toString() {
return "DefinedObject{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
}
上述代码中,我们使用Jackson库将JSON字符串转换为Java对象。首先,我们将JSON转换为List<Object>,这样可以保留JSON中的嵌套结构,但无法获取具体的对象属性。然后,我们将JSON转换为List<DefinedObject>,这样可以获取到具体的对象属性。
对于List<Object>,它适用于处理未知结构的JSON数据,或者对JSON数据的具体结构不关心的情况。而List<DefinedObject>适用于已知结构的JSON数据,可以方便地获取对象的属性。
推荐的腾讯云相关产品:腾讯云云服务器(CVM)和腾讯云云数据库MySQL。
请注意,以上推荐的腾讯云产品仅供参考,具体选择应根据实际需求进行评估和决策。
领取专属 10元无门槛券
手把手带您无忧上云