java - 如何从 JSON 创建具有不同字段结构的 Java obj

标签 java json jackson

我有一个以下格式的 json

[
    {
        "id": "one",
        "type": "Integer",
        "value": "10"
    },
    {
        "id": "two",
        "type": "String",
        "value": "StringValue"
    },
    {
        "id": "three",
        "type": "com.something.special",
        "value": {
            "splFiel1": "filedOne",
            "splFiel2": "fielTwo",
            "splFiel3": "fieldThree"
        }
    }
]

每个数组元素始终具有三个字段 id、type 和 value。 字段“值”的结构将取决于字段“类型”,并且可以根据该结构进行更改。

我想将此 json 转换为 Java 对象,以便我可以轻松访问“value”obj 及其子字段。我不认为这是正常的 json 到 java 对象转换的原因是由于“值”字段的字段结构基于同一 json 中的字段“类型”而变化。

这可以做到吗? 我正在尝试使用 jackson json 来做到这一点,但如果您有更好的选择,请提出建议。

请提供任何想法、建议、引用链接。

最佳答案

您可以使用以下 POJO 来转换给定的 JSON

public class Example {

@SerializedName("id")
private String id;
@SerializedName("type")
private String type;
@SerializedName("value")
private String value;
}

对于第三个字段,您可以保留简单的字符串。然后,每当您希望解析其内容以正确构造 java 类时,您可以检查其中的类型并将 json 字符串解析为某个 java 对象

关于java - 如何从 JSON 创建具有不同字段结构的 Java obj,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41330822/

相关文章:

java - 如何修改 GridData 的 heightHint

asp.net - 使用 jQuery $.ajax() 将 JSON 数据传递到具有/自定义绑定(bind)模型的 .NET MVC 操作时出现问题

java - 运行时 OSGi 依赖项中的 POJO 忽略导入的 Jackson 注释

java - Camel cxf with Spring boot-手动启动路线

java - 在 Spring MVC 表单中绑定(bind)嵌套属性

java - 解析jsoup url android

json - 如何在 jMeter 中使用 JSONSchema 验证 JSON 数据

android - 如何在 android 的本地 sqlite 数据库中存储 webview 响应?

java - 使用 Jackson 使用动态 JsonProperty 反序列化 JSON 对象,无需包装类

java - 在使用 Jackson 反序列化之前重构 JSON