java - 来自 JSON 或 JSON-Schema 的普通旧 Java 对象

标签 java json spring-boot jackson gson

我有一个 Json 对象,我想在 POJO 中进行转换,问题是他的属性 1 是一个值 c,它将具有我事先不知道的不同值。假设我对 "$key" 一无所知,或者可能是世界各地城市的名称

{
    "data": [{
        "id": 1,
        "name": "theName",
        "symbol": "theSymbol",
        "last_updated": "2018-06-02T22:51:28.209Z",
        "quote": {
            "$key": {
                "price": 9283.92,
            },
            "$key": {
                "price": 1,

            }
        }
    }],
    "status": {
        "timestamp": "2018-06-02T22:51:28.209Z",
        "error_code": 0,
        "error_message": "",
        "elapsed": 10,
        "credit_count": 1
    }
}

最佳答案

由于“$key”未知,我的建议是转换 quoteMap<String, Map<String, Integer>> ,这样“$key”的值就可以忽略了!这是我的代码:

import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.List;
import java.util.Map;

public class XmlParser {
    static class Entity {
        @JsonProperty("id")
        String id;
        @JsonProperty("name")
        String name;
        @JsonProperty("symbol")
        String symbol;
        @JsonProperty("last_updated")
        String lastUpdated;
        @JsonProperty("quote")
        Map<String, Map<String, Integer>> quote;
    }

    static class Data {
        @JsonProperty("data")
        List<Entity> data;
    }

    public static void main(String[] args) throws Exception {
    final String testJson = "{\"data\":[{\"id\":1,\"name\":\"theName\",\"symbol\":\"theSymbol\",\"last_updated\":\"2018-06-02T22:51:28.209Z\",\"quote\":{\"a\":{\"price\":9283.92},\"b\":{\"price\":1}}}]}";

        ObjectMapper mapper = new ObjectMapper();
        Data data = mapper.readValue(testJson, Data.class);
        System.out.println(mapper.writeValueAsString(data));
    }
}

关于java - 来自 JSON 或 JSON-Schema 的普通旧 Java 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54073184/

相关文章:

java - Google 教程中的这段 Java 代码在创建 Void 类型的变量时正确吗?

java - 在同一容器中运行多个应用程序时,在 Spring Boot 中外部化配置

java - 具有自定义 session 超时的 Spring Security

tomcat - 在 Spring Boot 中的多个连接器之间共享嵌入式 Tomcat 执行器

java - 如果我的应用程序在 Android 上最小化,如何启动并显示 Activity ?

java - R. 再次显示 xml 时出现错误

javascript - 使用 JSON 维护 RESTful url 的正确 Angularjs 方法

java - 有没有一种方法可以从 JSON 文件获取结果?

java - 切换屏幕javafx eclipse

json - 如何在 flutter 中反序列化来自json的对象列表