2016-07-28 20 views
2

嗨,我剛開始使用Json。 我的問題是我想在下面的表格不使用pojo,bean或getter和setter獲取Json標題json數組

[ { "id" : "1", "name" : "India" },{ "id" : "2", "name" : "Pakistan" },{ "id" : "3", "name" : "China" },{ "id" : "4", "name" : "Japan" },{ "id" : "5", "name" : "Russia" } ] 

我想每一個值的ID和姓名職務JSON數組。 那麼最大的問題是,當我使用的servlet我越來越沒有發送此JSON阿賈克斯(使用此代碼)

List<stateList> sl = new ArrayList<stateList>();//ststeList is getters n setters obj 
    sl.add(new stateList("1","India")); 
    Gson js = new Gson(); 
    js.toJson(sl); 
    response.setContentType("application/json"); 
    response.setCharacterEncoding("UTF-8"); 
    response.getWriter().write(js.toString()); 

,但如果我使用的字符串對象,我所獲得的價值,但沒有標題即(ID,姓名)

 {"1":"India","2":"Pak","3":"China"} 

代碼是

Map<String,String> m = new HashMap<String, String>(); 
    m.put("1", "India"); 
    m.put("2", "Pak"); 
    m.put("3", "China"); 

    String js = new Gson().toJson(m); 

所以最後我想最上面的JSON發送到ajax.There是Ajax代碼沒有proble其做工精細這類

回答

1

使用entrySet獲取密鑰。通過條目只是循環

代碼:

JsonParser p = new JsonParser(); 
JsonObject result = p.parse(file).getAsJsonObject(); 
Set<Map.Entry<String, JsonElement>> entrySet = result.entrySet(); 
for(Map.Entry<String, JsonElement> entry : entrySet) { 
    System.out.println(entry.getKey()); //this gives you the keys. 
} 

我希望這有助於你

+0

謝謝,但我使用GSON,我會嘗試這也 –

+0

yourwelcome,我更喜歡這種方式,它更容易獲得鑰匙,也更容易,如果你使用Java8,不要忘了添加JSON-簡單lib也加入你的項目http://www.java2s.com/Code/Jar/j/Downloadjsonsimple11jar.htm - Goodluck! –

1

確定後,很多勞苦的我這已經是藏在我以前建立的類解決方案。

class stateList 
{ 
    private String id; 
    private String StateName; 
    stateList s; 
    public stateList(String id, String StateName) 
    { 
    this.id = id; 
    this.StateName = StateName; 
    } 
    public String toString() { 
    return "id = " +id+ ", stateName = " +StateName; //solution 
    } 
    } 

只是調用stateList的toString();

  //code 2 line 5 
    js = new Gson().toJson(sl.toString());