2016-06-08 121 views
1

我試圖用Java在Java中反序列化JSON對象。我想將我的JSON流的每個團隊放入一個團隊對象中。用Java在Jackson中反序列化Json對象

這裏的JSON:

{ 
    "resource": "commonteamyears", 
    "parameters": { 
     "LeagueID": "00" 
    }, 
    "resultSets": [ 
     { 
      "name": "TeamYears", 
      "headers": [ 
       "LEAGUE_ID", 
       "TEAM_ID", 
       "MIN_YEAR", 
       "MAX_YEAR", 
       "ABBREVIATION" 
      ], 
      "rowSet": [ 
       [ 
        "00", 
        1610612737, 
        "1949", 
        "2015", 
        "ATL" 
       ], 
       [ 
        "00", 
        1610612738, 
        "1946", 
        "2015", 
        "BOS" 
       ], 
       [ 
        "00", 
        1610612739, 
        "1970", 
        "2015", 
        "CLE" 
       ], 
       [ 
        "00", 
        1610612740, 
        "2002", 
        "2015", 
        "NOP" 
       ], 
       [ 
        "00", 
        1610612741, 
        "1966", 
        "2015", 
        "CHI" 
       ], 
       [ 
        "00", 
        1610612742, 
        "1980", 
        "2015", 
        "DAL" 
       ], 
       [ 
        "00", 
        1610612743, 
        "1976", 
        "2015", 
        "DEN" 
       ], 
       [ 
        "00", 
        1610612744, 
        "1946", 
        "2015", 
        "GSW" 
       ], 
       [ 
        "00", 
        1610612745, 
        "1967", 
        "2015", 
        "HOU" 
       ], 
       [ 
        "00", 
        1610612746, 
        "1970", 
        "2015", 
        "LAC" 
       ], 
       [ 
        "00", 
        1610612747, 
        "1948", 
        "2015", 
        "LAL" 
       ], 
       [ 
        "00", 
        1610612748, 
        "1988", 
        "2015", 
        "MIA" 
       ], 
       [ 
        "00", 
        1610612749, 
        "1968", 
        "2015", 
        "MIL" 
       ], 
       [ 
        "00", 
        1610612750, 
        "1989", 
        "2015", 
        "MIN" 
       ], 
       [ 
        "00", 
        1610612751, 
        "1976", 
        "2015", 
        "BKN" 
       ], 
       [ 
        "00", 
        1610612752, 
        "1946", 
        "2015", 
        "NYK" 
       ], 
       [ 
        "00", 
        1610612753, 
        "1989", 
        "2015", 
        "ORL" 
       ], 
       [ 
        "00", 
        1610612754, 
        "1976", 
        "2015", 
        "IND" 
       ], 
       [ 
        "00", 
        1610612755, 
        "1949", 
        "2015", 
        "PHI" 
       ], 
       [ 
        "00", 
        1610612756, 
        "1968", 
        "2015", 
        "PHX" 
       ], 
       [ 
        "00", 
        1610612757, 
        "1970", 
        "2015", 
        "POR" 
       ], 
       [ 
        "00", 
        1610612758, 
        "1948", 
        "2015", 
        "SAC" 
       ], 
       [ 
        "00", 
        1610612759, 
        "1976", 
        "2015", 
        "SAS" 
       ], 
       [ 
        "00", 
        1610612760, 
        "1967", 
        "2015", 
        "OKC" 
       ], 
       [ 
        "00", 
        1610612761, 
        "1995", 
        "2015", 
        "TOR" 
       ], 
       [ 
        "00", 
        1610612763, 
        "1995", 
        "2015", 
        "MEM" 
       ], 
       [ 
        "00", 
        1610612764, 
        "1961", 
        "2015", 
        "WAS" 
       ], 
       [ 
        "00", 
        1610612765, 
        "1948", 
        "2015", 
        "DET" 
       ], 
       [ 
        "00", 
        1610612766, 
        "1988", 
        "2015", 
        "CHA" 
       ], 
       [ 
        "00", 
        1610612762, 
        "1974", 
        "2015", 
        "UTA" 
       ], 
       [ 
        "00", 
        1610610029, 
        "1948", 
        "1948", 
        null 
       ], 
       [ 
        "00", 
        1610610025, 
        "1946", 
        "1949", 
        null 
       ], 
       [ 
        "00", 
        1610610034, 
        "1946", 
        "1949", 
        null 
       ], 
       [ 
        "00", 
        1610610036, 
        "1946", 
        "1950", 
        null 
       ], 
       [ 
        "00", 
        1610610024, 
        "1947", 
        "1954", 
        null 
       ], 
       [ 
        "00", 
        1610610027, 
        "1949", 
        "1949", 
        null 
       ], 
       [ 
        "00", 
        1610610030, 
        "1949", 
        "1952", 
        null 
       ], 
       [ 
        "00", 
        1610610033, 
        "1949", 
        "1949", 
        null 
       ], 
       [ 
        "00", 
        1610610037, 
        "1949", 
        "1949", 
        null 
       ], 
       [ 
        "00", 
        1610610031, 
        "1946", 
        "1946", 
        null 
       ], 
       [ 
        "00", 
        1610610023, 
        "1949", 
        "1949", 
        null 
       ], 
       [ 
        "00", 
        1610610028, 
        "1946", 
        "1946", 
        null 
       ], 
       [ 
        "00", 
        1610610026, 
        "1946", 
        "1946", 
        null 
       ], 
       [ 
        "00", 
        1610610032, 
        "1946", 
        "1948", 
        null 
       ], 
       [ 
        "00", 
        1610610035, 
        "1946", 
        "1946", 
        null 
       ] 
      ] 
     } 
    ] 
} 

我創建了一個POJO JsonRequestResult,我可以得到三個參數:資源,參數和結果集。但是從這裏開始,我不知道如何訪問resultSets中的數據。

這裏是我的main方法:

public static void main(String[] args) throws JsonParseException, JsonMappingException, MalformedURLException, IOException { 
    ObjectMapper objectMapper = new ObjectMapper(); 

    JsonRequestResult jrr = objectMapper.readValue(new URL("http://stats.nba.com/stats/commonteamyears/?LeagueID=00"), JsonRequestResult.class); 

    System.out.println(jrr.getResource()); 
    System.out.println(jrr.getParameters()); 
    System.out.println(jrr.getResultSets()); 
} 

這是我的JsonRequestResult類:

public class JsonRequestResult { 

    private String resource; 
    private Object parameters; 
    private Object[] resultSets; 

} 
+0

我不明白你在問什麼。您收到的對象是空的還是空的?換句話說:你爲什麼不告訴我們你的程序的輸出;並告訴我們哪裏偏離了你的期望? – GhostCat

+0

[將Java對象轉換爲JSON與Jackson]可能的重複(http://stackoverflow.com/questions/15786129/converting-java-objects-to-json-with-jackson) – Casey

+0

要清楚,我不知道我必須編寫什麼來創建對應於我的Json流的對象Java。 – StYoukii

回答

1

您需要嵌套類:

public class JsonRequestResult { 
    private String resource; 
    private Object parameters; 
    private ResultSetEntry[] resultSets; 
} 

public class ResultSetEntry { 
    private String name; 
    ... 
} 

你看到這個去?