使用Gson和JsonObject格式化和解析数据

使用Gson和JsonObject格式化和解析数据,json,parsing,gson,Json,Parsing,Gson,我使用and来格式化我需要以字符串形式发送的数据,然后在其他地方检索和解析它。 这是我不起作用的简单代码: 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");

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

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


}
publicstaticvoidmain(字符串[]args)
{
Gson g=新的Gson();
Gson listG=新的Gson();
ArrayList l=新的ArrayList();
l、 添加(“abcd”);
l、 添加(“efgh”);
l、 添加(“ijkl”);
String list=listG.toJson(l);
JsonObject jObject=新的JsonObject();
jObject.addProperty(“命令”,1);
addProperty(“消息”,“这是一条测试消息”);
jObject.addProperty(“列表”,列表);
字符串toSend=g.toJson(jObject);
系统输出打印项次(toSend);
Gson rec=新的Gson();
JsonObject newObj=rec.fromJson(toSend,JsonObject.class);
System.out.println(newObj);//在newObj中什么也得不到
}
我做错了什么?

您应该使用:

JsonObject newObj = new JsonParser().parse(toSend).getAsJsonObject();
那里有很多电话,但要点是使用这个类