我正在使用JsonObject和Gson来格式化我需要以String形式发送的数据,然后在其他地方检索并解析它。 这是我的简单代码,它不起作用:
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
}
我在这里做错了什么?
答案 0 :(得分:17)
您应该使用:
JsonObject newObj = new JsonParser().parse(toSend).getAsJsonObject();
那里有很多电话,但要点是使用JsonParser类。