如何使用gson库将string转换为JsonObject

请build议如何使用gson库将String转换为JsonObject

我不明白的是:

 String string = "abcde"; Gson gson = new Gson(); JsonObject json = new JsonObject(); json = gson.toJson(string); // Can't convert String to JsonObject 

你不需要使用JsonObject 。 你应该使用Gson来转换/从JSONstring和你自己的Java对象。

查看Gson用户指南 :

(串行化)

 Gson gson = new Gson(); gson.toJson(1); // prints 1 gson.toJson("abcd"); // prints "abcd" gson.toJson(new Long(10)); // prints 10 int[] values = { 1 }; gson.toJson(values); // prints [1] 

(反序列化)

 int one = gson.fromJson("1", int.class); Integer one = gson.fromJson("1", Integer.class); Long one = gson.fromJson("1", Long.class); Boolean false = gson.fromJson("false", Boolean.class); String str = gson.fromJson("\"abc\"", String.class); String anotherStr = gson.fromJson("[\"abc\"]", String.class) 

如果你想使用:你可以把它转换成JavaBean:

  Gson gson = new GsonBuilder().setPrettyPrinting().create(); gson.fromJson(jsonString, JavaBean.class) 

要使用更灵活的JsonObject,请使用以下命令:

 String json = "{\"Success\":true,\"Message\":\"Invalid access token.\"}"; JsonParser jsonParser = new JsonParser(); JsonObject jo = (JsonObject)jsonParser.parse(json); Assert.assertNotNull(jo); Assert.assertTrue(jo.get("Success").getAsString()); 

这相当于以下内容:

 JsonElement jelem = gson.fromJson(json, JsonElement.class); JsonObject jobj = jelem.getAsJsonObject(); 

要以更简单的方式进行操作,请考虑以下事项:

 JsonObject jsonObject = (new JsonParser()).parse(json).getAsJsonObject(); 

看起来上面的答案完全没有回答这个问题。

我想你正在寻找如下的东西:

 class TransactionResponse { String Success, Message; List<Response> Response; } TransactionResponse = new Gson().fromJson(response, TransactionResponse.class); 

我的回答是这样的:

 {"Success":false,"Message":"Invalid access token.","Response":null} 

如您所见,variables名称应该与键值对中键的Jsonstring表示相同。 这将自动将您的gsonstring转换为JsonObject。

 String string = "abcde"; // The String which Need To Be Converted JsonObject convertedObject = new Gson().fromJson(string, JsonObject.class); 

我这样做,它的工作。

 Gson gson = new Gson(); YourClass yourClassObject = new YourClass(); String jsonString = gson.toJson(yourClassObject); 
 JsonObject jsonObject = (JsonObject) new JsonParser().parse("YourJsonString");