簡體   English   中英

將JSON字符串解析為具有復雜數據結構的Java(傑克遜)

[英]Parsing json string to java with complex datastructure(jackson)

我正在嘗試將下面的json字符串轉換為java對象,但是我正在獲取空對象。 在prop2對象下,可以有任意數量的鍵值對(其中key是字符串,value是數組)

{
"Level1": {
        "prop1": "",
        "prop2": {
            "one": [{
                "ip": "1.2.3.4",
                "port": "100"
            }],
            "ten": [{
                "ip": "10.20.20.10",
                "port": "200"
            }]
        }
}
}

我有這個類結構,但是我正在把ipAndPorts映射為空。

    @JsonIgnoreProperties(ignoreUnknown = true)
    static class Root {
        @JsonProperty("Level1")
        private Level1 level1;
    }
    @JsonIgnoreProperties(ignoreUnknown = true)
    static class Level1 {
        @JsonProperty("prop2")
        private Prop2 prop2;
    }

    @JsonIgnoreProperties(ignoreUnknown = true)
    static class Prop2 {
        private Map<String, List<IpAndPort>> ipAndPorts = Collections.emptyMap();
    }
    @JsonIgnoreProperties(ignoreUnknown = true)
     static class IpAndPort {
        @JsonProperty("port")
        private String port;
    }

我的java類應如何正確顯示“ prop2”?

記錄:該問題已通過使用解決

@JsonIgnoreProperties(ignoreUnknown = true)
static class Level1 {
    @JsonProperty("prop2")
    private Map<String, List<IpAndPort>> ipAndPorts = Collections.emptyMap();
}

直接不使用Prop2類。 否則,Jackson將在prop2 JSON對象下期望一個名為ipAndPorts的JSON屬性。

我認為您首先要按照想要的樣子創建Java類,然后使用Jackson將其序列化為JSON。 您將看到結果JSON的結構,並查看是否以及如何需要修改您的類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM