成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

操縱JsonObject的方法

開發 后端
Json對象是Name Value對(即子元素)的無序集合,相當于一個Map對象。JsonObject類是bantouyan-json庫對Json對象的抽象,提供操縱Json對象的各種方法。本文就介紹如何操縱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代碼

 

 

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

 

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

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

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

Java代碼

 

 

  1. HashMap map = new HashMap();     
  2. map.put("nameA""valueA");      
  3. map.put("nameB""valueB");      
  4. 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構成的集合。

【編輯推薦】

  1. JSON數據在J2ME下的構造和解析
  2. 深入了解J2ME Polish+Eclipse配置過程
  3. 探究J2ME中cookie庫的管理
  4. 術語匯編 J2ME 3D技術簡介
  5. 解析Linux下如何用eclipse搭建J2ME開發環境
責任編輯:金賀 來源: JavaEye博客
相關推薦

2010-12-22 11:19:09

Java字節代碼

2020-05-14 09:42:15

數據操縱網絡阻擊數據泄露

2022-06-06 14:56:03

機器人算法模型

2012-02-08 14:24:35

HibernateJava

2014-10-09 09:34:38

ATM惡意軟件Tyupkin

2020-10-31 21:47:06

Python數據結構開發

2009-08-06 18:10:06

C#數據庫事務

2013-07-10 09:26:27

亞馬遜Web服務云計算創新云計算市場情況

2009-09-03 16:17:12

C#操縱系統菜單

2021-07-08 15:48:51

僵尸網絡IoTDDoS攻擊

2011-03-04 11:08:46

ADO.NET數據庫

2021-09-13 07:23:53

KafkaGo語言

2025-02-20 14:34:18

2012-12-31 10:15:15

2020-09-28 13:57:35

惡意軟件黑客網絡攻擊

2021-06-15 09:10:41

漏洞網絡安全程序員

2018-10-09 10:35:00

2009-11-11 16:15:04

ADO.NET操縱數據

2024-11-01 14:56:09

2022-07-11 09:33:17

AI腦機接口
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 亚洲视频免费在线 | www.av在线 | 福利视频一区二区 | 日韩三级视频 | 黄色亚洲 | 夜夜艹天天干 | 99re视频在线免费观看 | 日韩免费一二三区 | 亚洲欧美激情网 | 国产高清视频 | 免费骚视频| 欧美激情精品久久久久 | 久久久国产一区二区三区四区小说 | 三级在线免费观看 | 日韩在线中文 | 国产日产精品一区二区三区四区 | 欧美专区在线 | 欧美精品区 | 国产美女精品视频免费观看 | 国产超碰人人爽人人做人人爱 | 欧美日韩一区二区三区四区 | 国产目拍亚洲精品99久久精品 | 午夜av电影 | 亚洲免费在线 | 黑人性hd| 国产免费a | 成人av电影免费在线观看 | 成年人免费网站 | 日日av| 久久久久成人精品亚洲国产 | 国产精品二区三区 | 久久精品久久久久久 | 国产精品视频久久久久 | 国产三级电影网站 | 天天躁日日躁狠狠躁白人 | 久久爱一区 | 亚洲精品不卡 | 日韩久久久久久 | 福利成人| 日韩在线视频免费观看 | 欧美一区二区三区在线看 |