Java 动态生成对象:无需自定义类,直接从 JSON 文件创建
在 Java 中,可以使用 JsonNode 类来动态生成对象,而无需自定义 Java 类。以下是一个示例代码:
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
public class DynamicObjectGeneration {
public static void main(String[] args) {
String json = '{ "name": "John", "age": 30 }';
try {
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(json);
// 获取JsonNode中的属性值
String name = jsonNode.get('name').asText();
int age = jsonNode.get('age').asInt();
// 创建动态对象
Object dynamicObject = new Object() {
public String name = jsonNode.get('name').asText();
public int age = jsonNode.get('age').asInt();
};
// 打印动态对象的属性值
System.out.println("Name: " + name);
System.out.println("Age: " + age);
// 打印动态对象
System.out.println(dynamicObject);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在上述代码中,我们使用 Jackson 库的 ObjectMapper 类来解析 JSON 字符串,并将其转换为 JsonNode 对象。然后,我们可以使用 JsonNode 对象的 get() 方法来获取属性值。接下来,我们使用匿名内部类的方式创建了一个动态对象,并在其中定义了与 JSON 属性对应的属性。最后,我们打印了动态对象的属性值。
请注意,由于动态对象是使用匿名内部类创建的,因此无法直接打印该对象的内容。如果需要打印对象的内容,可以使用 toString() 方法来实现。
原文地址: https://www.cveoy.top/t/topic/fBk2 著作权归作者所有。请勿转载和采集!