演示JsonElement對象的deepCopy()、getAsJsonObject()、getAsJsonArray()方法。
import com.google.gson.*; /** * @author yongjar * @date 2020/4/28 */ public class GsonTester { public static void main(String args[]) { Gson gson = new Gson(); //json串 String json = "{ \"f1\":\"Hello\",\"f2\":{\"f3:\":\"World\"}}"; //解析為json元素 JsonElement j0 = JsonParser.parseString(json); // 方法1: deepCopy() (深度拷貝對象) JsonElement j1 = j0.deepCopy(); boolean equals = j0.equals(j1); System.out.println("拷貝的對象是否相同:" + equals); //方法2: getAsJsonObject() JsonObject asJsonObject = j0.getAsJsonObject(); System.out.println("getAsJsonObject()轉化為對象: \t" + asJsonObject); String json1 = "{\n" + "\"name\":\"yongjar\",\n" + "\"sex\":gender,\n" + "\"sites\":[ \"Google\", \"Runoob\", \"Taobao\" ]\n" + "}"; JsonElement JsonElement = JsonParser.parseString(json1); System.out.println(JsonElement.toString()); //方法3: getAsJsonArray() (轉化為數組,前提元素得是數組) //首先得轉成json對象 JsonObject asJsonObject1 = JsonElement.getAsJsonObject(); //再獲取到key獲取到指定的數組。 JsonArray asJsonArray = asJsonObject1.getAsJsonArray("sites"); System.out.println("sites的數組元素是:" + asJsonArray); } }