1、JsonElement:它是一個抽象類,表示某個json元素。這個元素可以是一個JsonObject、JsonArray、JsonPrimitive或JsonNull,這些都是JsonElement這個抽象類的子類。JsonElement運用了Java的多态機制提供一系列的方法來判斷目前的Json對象是否屬于上述子類的一種。
2、JsonPrimitive:它是JsonElement的子類,該類對Java的基本類型及其對應的包裝類進行了封裝,并通過setValue方法為value指派。它可以表示為任意一種Java的基本類型或其對應的包裝類。
3、JsonObject:json對象類,包含了鍵值對,鍵是字元串類型,它的值是一個JsonElement。
4、JsonArray:Json的數組包含一個或多個Json串。JsonArray中用一個集合類List<JsonElement>來添加json數組中的每個元素。
5、JsonNull:null值。
6、JsonParser:Json解析類,将字元串類型或io流對象解析成JsonElement。
7、各個JsonElement的關系可以用如下圖表示:
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiQ3chVEa0V3bT9CX5RXa2Fmcn9CXwczLcVmds92czlGZvwVP9EUTDZ0aRJkSwk0LcxGbpZ2LcBDM08CXlpXazRnbvZ2LcRlMMVDT2EWNvwFdu9mZvwVPRRlT4VFVPlXUE5ENFpmYr50MZZXUYpVd1kmYr50MZV3YyI2cKJDT29GRjBjUIF2LcRHelR3LcJzLctmch1mclRXY39DO2cDMxYTN0ETNwEDM4EDMy8CX0Vmbu4GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.jpg)
8、主要JsonElement轉換代碼:
JsonParser parser = new JsonParser();
InputStreamReader isr = new InputStreamReader(request.getInputStream());
JsonElement jsonEl = parser.parse(isr);
isr.close();
JsonObject jsonObj = jsonEl.getAsJsonObject();
JsonArray ja = jsonObj.get("JsonArray").getAsJsonArray();
JsonObject jo = null;
for (int i = 0; i < ja.size(); i++) {
JsonElement je = js.get(i);
jo = je.getAsJsonObject();
}