2016-07-28 31 views
2

Hallo Ich habe gerade angefangen, Json zu verwenden. Mein Problem ist, ich json Array wollen Form in folgendenGetting Json Titel json Array ohne Pojo, Bean oder Getter und Setter

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

Ich möchte id und Titel für jeden Wert. Dann größte Problem ist, wenn ich diese json zu Ajax sende Servlet ich nichts bin immer (mit diesem Code)

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()); 

aber wenn ich String-Objekt verwende ich den Wert immer bin, aber ohne Titel ie (id, name

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

-Code ist

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); 

So habe ich endlich über den meisten json wollen ajax.There senden ist kein proble mit seinen ajax-Code arbeiten gut mit dieser Art

Antwort

1

Verwenden Sie entrySet, um die Schlüssel zu erhalten. Nur eine Schleife durch die Einträge

Code:

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. 
} 

Ich hoffe, das hilft Ihnen

+0

Danke, aber ich bin mit Gson, ich werde versuchen, diese auch –

+0

yourwelcome, ziehe ich es auf diese Weise, ist es einfacher, Schlüssel zu bekommen und auch einfacher, wenn Sie Java8 verwenden, vergessen Sie nicht json-einfach hinzufügen lib zu deinem Projekt auch http://www.java2s.com/Code/Jar/j/Downloadjsonsimple11jar.htm - Goodluck! –

1

Ok nach vielen werktätig ich die Lösung hätte, die bereits in der Klasse versteckt ich vorher gebaut.

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 
    } 
    } 

rufen Sie einfach die stateList toString();

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