2012-11-17 49 views
11

我使用JsonObjectGson来格式化我需要以字符串形式发送的数据,然后在其他地方检索并解析它。 这是我这是不工作的简单代码:使用Gson和JsonObject格式化和解析数据

public static void main(String[] args) 
{ 

    Gson g = new Gson(); 
    Gson listG = new Gson(); 
    ArrayList<String> l= new ArrayList<String>(); 
    l.add("abcd"); 
    l.add("efgh"); 
    l.add("ijkl"); 

    String list = listG.toJson(l); 

    JsonObject jObject = new JsonObject(); 
    jObject.addProperty("command" , 1); 
    jObject.addProperty("message" , "this is a test message"); 
    jObject.addProperty("list" , list); 

    String toSend = g.toJson(jObject); 
    System.out.println(toSend); 

    Gson rec = new Gson(); 
    JsonObject newObj = rec.fromJson(toSend, JsonObject.class); 
    System.out.println(newObj); // getting nothing in newObj 


} 

我到底做错了什么?

回答

17

你应该使用:

JsonObject newObj = new JsonParser().parse(toSend).getAsJsonObject(); 

许多在那里的电话,但要点是使用JsonParser类。

+0

快速和点...谢谢:) – Jazib