2014-11-05 35 views
0

我想创建一个JSON表示出这个Java对象。我正在使用杰克逊。Java到JSON(w /嵌套元素)

private List<Map<String, String>> Crews = new ArrayList<Map<String, String>>(); 

public Crew() { 
    Map<String, String> crew1 = new HashMap<String, String>(); 
    crew1.put("crewId", "3"); 
    crew1.put("crewName", "T.I.P."); 
    crew1.put("crewIntro", "Teamwork Is Perfect"); 
    crew1.put("crewGenre", "bboy"); 
    crew1.put("crewAsso", "TIP Studio"); 
    crew1.put("crewLeaderContact", "tip.tip.com"); 
    Crews.add(crew1); 

    Map<String, String> crew2 = new HashMap<String, String>(); 
    crew2.put("crewId", "4"); 
    crew2.put("crewName", "Pinky Chicks"); 
    crew2.put("crewIntro", "Best feminine males"); 
    crew2.put("crewGenre", "Girl's hip-hop"); 
    crew2.put("crewAsso", "JBlack Studio"); 
    crew2.put("crewLeaderContact", "[email protected]"); 
    Crews.add(crew2); 
} 

public List<Map<String, String>> getCrews() { 
    return Crews; 
} 

public void setCrews(List<Map<String, String>> crews) { 
    Crews = crews; 
} 

public static void createCrewJSON(String filePath) { 
    Crew crew = new Crew(); 
    ObjectMapper mapper = new ObjectMapper(); 
    try { 

     mapper.writeValue(new File(filePath), crew.getCrews()); 

    } catch (JsonProcessingException e) { 
     e.printStackTrace(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     System.out.println("JSON Crew File Created"); 
    } 
} 

这是我的结果:

[ 
     { 
     "crewIntro":"Teamwork Is Perfect", 
     "crewId":"3", 
     "crewGenre":"bboy","crewName":"T.I.P.", 
     "crewLeaderContact":"tip.tip.com", 
     "crewAsso":"TIP Studio" 
     }, 
     { 
      "crewIntro":"Best feminine males", 
      "crewId":"4", 
      "crewGenre":"Girl's hip-hop", 
      "crewName":"Pinky Chicks", 
      "crewLeaderContact":"[email protected]", 
      "crewAsso":"JBlack Studio" 
     } 
    ] 

我怎么会改变我的createCrewJSON的方法来产生这样的:?

{ 
    "Crews": [ 
     { 
     "Crew": { 
       "crewIntro":"Teamwork Is Perfect", 
      "crewId":"3", 
      "crewGenre":"bboy","crewName":"T.I.P.", 
      "crewLeaderContact":"tip.tip.com", 
      "crewAsso":"TIP Studio" 
      } 
     }, 
     { 
     "Crew": { 
      "crewIntro":"Best feminine males", 
      "crewId":"4", 
      "crewGenre":"Girl's hip-hop", 
      "crewName":"Pinky Chicks", 
      "crewLeaderContact":"[email protected]", 
      "crewAsso":"JBlack Studio" 
      } 
     } 
    ] 
} 

我已经做了谷歌多个搜索产生这些嵌套结构,但到Java结果我只得到JSON ..

回答

0

创建POJO类似

public class Crews{ 
    private List<Map<String, String>> crews; 

    // gettes ,setters 

} 

此创建对象类。并设置工作人员并解析此对象