簡體   English   中英

使用Objectmapper JAVA解析JSON

[英]JSON parse with Objectmapper JAVA

這是JSON字符串:

{
   "d":{
      "results":[
         {
            "__metadata":{
               "uri":"http://blabla1",
               "type":"type1"
            },
            "Synonym":"miami"
         },
         {
            "__metadata":{
               "uri":"http://blabla2",
               "type":"type2"
            },
            "Synonym":"florida"
         }
      ]
   }
}

這是代碼:

public class Test{        
    @JsonIgnoreProperties(ignoreUnknown = true)
    public static class d {
        public List<Results> results;
        public d() {
            results = new ArrayList<Results>();
        }
        public static class Results {
            public Metadata __metadata;
            public String Synonym;
            public Results() {}
        }
        public static class Metadata {
            public String uri;
            public String type;
            public Metadata() {}
        }
    }
}

使用以下映射器:

ObjectMapper mapper = new ObjectMapper();
Test.d readValue = mapper.readValue(jsonString, Test.d.class);
for (Test.d.Results k : readValue.results) {
    System.out.println("synonym: "+k.Synonym);
}

它給了我沒有錯誤,只是一個空洞的結果arraylist ... ps我在時間之間做了很多改變,抱歉給您帶來不便

你必須創建一個適合jSon答案的對象,像這樣(未經測試):

class d {

    public List<Results> results;

    public d() {
    }
}

class Results {

    public Metadata metadata;
    public String synonym;

    public Results() {
    }
}

class Metadata {

    public String uri;
    public String type;


    public Metadata() {
    }
}

希望能幫助到你!

我設法解決了它。 我忘了為'd'班制作二傳手和吸氣鬼。

public class Test {
    private d d;
    public d getD() {return d;}
    public void setD(d d) {this.d = d;}    
    public static class d{
        private List<Results> results;
        public List<Results> getResults() {return results;}
        public void setResults(List<Results> results) {this.results = results;}
    }
    public static class Results {
        public Metadata __metadata;
        public String Synonym;
    }
    public static class Metadata {
        private String uri;
        private String type;
        public String getUri() {return uri;}
        public void setUri(String uri) {this.uri = uri;}
        public String getType() {return type;}
        public void setType(String type) {this.type = type;}
    }
}

這是地圖:

Test test = mapper.readValue(json, KeyPhrase.class);
    System.out.println("cp");

    for(Test.Results res : test.getD().getResults()){
        System.out.println(res.Synonym);
}

暫無
暫無

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

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