91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

操縱JsonObject的方法是什么

發布時間:2021-12-14 10:59:23 來源:億速云 閱讀:170 作者:柒染 欄目:編程語言

這期內容當中小編將會給大家帶來有關操縱JsonObject的方法是什么,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

Json對象是Name Value對(即子元素)的無序集合,相當于一個Map對象。JsonObject類是bantouyan-json庫對Json對象的抽象,提供操縱Json對象的各種方法。下面介紹如何操縱JsonObject類。

一、創建JsonObject實例

創建JsonObject實例有兩類方法,一是利用超類Json的靜態方法parseJsonText、parseJsonReader與parseJavaMap獲取JsonObject實例,二是直接利用JsonObject類的構造方法創建JsonObject實例。

根據傳入的參數不同,parseJsonText返回一個JsonObject實例或JsonArray實例,利用parseJsonText方法的示例代碼如下:

Java代碼

String jsonText = "{'name1': 'value1', 'name2': 'value2'}";     JsonObject jobj = (JsonObject)Json.parseJsonText(jsonText);

parseJsonText返回的是一個Json類變量,所以要使用強制類型轉換。

parseJsonReader負責從Reader類型參數內讀取Json文本流,然后轉換為Json實例,與parseJsonText一樣,返回值需要強制類型轉換。

方法parseJavaMap直接返回JsonObject變量,不用類型轉換,示例代碼如下:

Java代碼

HashMap map = new HashMap();     map.put("nameA", "valueA");      map.put("nameB", "valueB");      JsonObject jobj = Json.parseJavaMap(map);

如果Map內有復雜的對象需要解析,可以用parseJavaMap的重載版本parseJavaMap(Map, JsonParser)來處理(JsonParser的使用參考解析Json——Json類的靜態方法的第五部分)。

JsonObject類的構造函數有四個重載版本:JsonObject()、JsonObject(int)、JsonObject(Map)與JsonObject(Map, JsonParser)。不帶參數與帶整型參數的重載版本都構造一個空的JsonObject實例,所不同的是帶整型參數的重載版本能夠指定JsonObject初始容量的大小,以避免不必要的重新分配內存。重載版本JsonObject(Map)與JsonObject(Map, JsonParser)的使用類似于Json類的靜態方法parseJavaMap。

二、給JsonObject添加子元素

給JsonObject實例添加子元素調用方法add或addAll。bantouyan-json庫規定,方法add與addAll都不能添加Name為null的子元素,也不能添加與已有子元素Name相同的子元素,否則會拋出異常。

方法add有七種重載版本,方法addAll有三種重載版本,分別使用于不同的情況。

三、變更JsonObject子元素的Value

要改變JsonObject子元素的Value可以調用方法set與setAll。這兩個方法都忽略Name為null的子元素,如果存在Name相同的子元素,則更改這個子元素的Value,否則添加一個新的子元素。

方法set也有七種重載版本,addAll有三種重載版本,分別適用于不同的情況。

四、獲取與檢測JsonObject子元素

JsonObject的每個子元素的Value都是一個Json實例,可以用方法get(String)獲取這個實例。至于這個實例的類型,除可以調用方法getType()獲得外,還可以通過JsonObject對方法getType的重載版本getType(String)獲取(String為子元素的Name)。

利用方法getString(String)可以獲取指定Name的子元素Value的字符串值,如果子元素的Value是JsonPrimitive實例,則返回這個實例值對應的字符串(不帶引號與轉義符),否則返回對應的標準Json文本。

如果想獲取子元素的Value所對應的boolean、double、long、JsonArray與JsonObject類型的值,則可以分別調用方法getBoolean(String)、getDouble(String)、getLong(String)、getJsonArray(String)與getJsonObject(String)。與getString方法不一樣的是當子元素的Value無法轉換為相應的類型時會拋出異常。方法canToBoolean(String)、canToDouble(String)、canToLong(String)、canToJsonArray(String)與canToJsonObject(String)可以檢測是否可以轉換為對應的類型。

以特定的類型獲取子元素的Value時,方法canToXXX返回true并不表明子元素的Value就是所測試的類型。根據bantouyan-json庫設計,如果子元素的Value的類型是INTEGER,則可以得到對應的double類型的值,如果類型時String,對于部分Value,可以得到對應的boolean、long、double類型的值。

五、確定JsonObject子元素是否存在

在獲取子元素前可能無法確定JsonObject是否包含指定Name的子元素,要確定子元素存在,請調用方法containsName(String)。

六、刪除JsonObject子元素

刪除JsonObject的子元素調用方法remove(String),參數為要刪除的子元素的Name。

七、獲取JsonObject子元素相關的集合

與Map一樣,JsonObject也是由無序的Name Value對構成,為此,JsonObject實現了三個方法用于獲取子元素相關的集合。

entrySet(),返回由子元素的Name Value對構成的集合。

nameSet(),返回由子元素的Name構成的集合。

values(),返回由子元素的Value構成的集合。

上述就是小編為大家分享的操縱JsonObject的方法是什么了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

益阳市| 博乐市| 大丰市| 寿宁县| 桃江县| 黔西县| 红河县| 若尔盖县| 宣汉县| 广南县| 蕉岭县| 沂水县| 密云县| 镇安县| 铅山县| 麻栗坡县| 梁山县| 科尔| 穆棱市| 古浪县| 夏津县| 马关县| 蓬安县| 南充市| 普兰县| 鹤庆县| 辉南县| 金寨县| 南汇区| 鸡西市| 淮阳县| 南宁市| 临沂市| 和龙市| 哈尔滨市| 辽中县| 河西区| 连南| 新宁县| 颍上县| 浙江省|