在 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 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录