国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Java 解析多層嵌套json數(shù)據(jù)及json字符串與對象的相互轉(zhuǎn)換

這篇具有很好參考價(jià)值的文章主要介紹了Java 解析多層嵌套json數(shù)據(jù)及json字符串與對象的相互轉(zhuǎn)換。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


前言

本文主要介紹java解析多層嵌套json數(shù)據(jù)以及字符串與JSON對象之間的相互轉(zhuǎn)換,包括:json字符串的取值,json對象與字符串的相互轉(zhuǎn)換,字符串轉(zhuǎn)化為java對象,字符串轉(zhuǎn)化為javaList列表等。


提示:以下是本篇文章正文內(nèi)容,下面案例可供參考

一、基本語法

1.格式要求

  • 數(shù)據(jù)格式:JSON實(shí)際上就是鍵值對(“key” : “value”)
  • 數(shù)據(jù)要求:key必須是字符串,value可以是字符串、數(shù)字、對象、數(shù)組、布爾值或null

2.value的取值語法

  • 字符串,jsonObject.getString(“key”)
  • 數(shù)字,jsonObject.getIntValue(“key”) 或者 jsonObject.getInteger(“key”) 與之對應(yīng)的數(shù)據(jù)類型
  • 布爾值,jsonObject.getBooleanValue(“key”)
  • 數(shù)組,jsonObject.getJSONArray(“key”)
  • Object 對象,jsonObject.get(“key”)
  • JSONObject 對象,jsonObject.getJSONObject(“key”)

3.JSON對象與字符串相互轉(zhuǎn)換

  • 用的是fastjson解析,pom文件
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>2.0.0</version>
</dependency>
  • Object對象轉(zhuǎn)Json字符串:JSON.toJSONString(Object object);
JSONObject jsonObject = buildJSONObject(); // 構(gòu)造的json對象
String jsonString = JSON.toJSONString(jsonObject);
  • Json字符串轉(zhuǎn)Object對象:JSON.parseObject(String str);
JSONObject jsonObject = buildJSONObject(); // 構(gòu)造的json對象
String jsonString = JSON.toJSONString(jsonObject);
JSONObject jsonObject1 = JSON.parseObject(jsonString);
  • 將字符串轉(zhuǎn)為JSONArray:JSON.parseArray(arrayStr);
String arrayStr = "......";
JSONArray array = JSON.parseArray(arrayStr);
  • 將字符串轉(zhuǎn)為具體的單個(gè)java對象:JSON.parseObject(String text, Class clazz);
String userString = "{\"name\":\"libai\"}";
User user1 = JSON.parseObject(userString, User.class);
// 或者
User user2 = JSON.parseObject(userString).toJavaObject(User.class);
// 再或者使用JSONObject替換JSON也可,即JSONObject.parseObject(userString, User.class);
@Data
static class User {
    private String name;
}
  • 將字符串轉(zhuǎn)為具體的java List列表:JSONObject.parseArray(“字符串”).toJavaList(User.class);
String userListString = "[{\"name\":\"1\"},{\"name\":\"12\"}]";
List<User> userList = JSONObject.parseArray(userListString).toJavaList(User.class);

二、取值示例

1.構(gòu)造數(shù)據(jù)

構(gòu)造如下數(shù)據(jù),有字符串、數(shù)組、對象等
java 多層json遞歸解析,Java,java,json

private static JSONObject buildJSONObject() {
    // 構(gòu)造JSONObject對象
    JSONObject jsonObject = new JSONObject();
    // value為字符串及數(shù)字
    jsonObject.put("name", "website");
    jsonObject.put("age", 18);

    // 構(gòu)造JSONArray對象
    JSONArray jsonArray = new JSONArray();
    // JSONArray里面有JSONObject對象
    JSONObject jsonArrayObject1 = new JSONObject();
    jsonArrayObject1.put("name", "alibaba");
    jsonArrayObject1.put("info", "www.alibaba.com");
    JSONObject jsonArrayObject2 = new JSONObject();
    jsonArrayObject2.put("name", "baidu");
    jsonArrayObject2.put("info", "www.baidu.com");
    jsonArray.add(jsonArrayObject1);
    jsonArray.add(jsonArrayObject2);
	// value為JSONArray對象
    jsonObject.put("sites",jsonArray);

    JSONObject jsonObject2 = new JSONObject();
    jsonObject2.put("name", "blog.csdn.net");
	// value為JSONObject對象
    jsonObject.put("site", jsonObject2);
    return jsonObject;
}

2.讀取數(shù)據(jù)

  • 取出 website 字符串及 18 數(shù)字
System.out.println(jsonObject.get("name"));			// 直接get返回的是Object對象
System.out.println(jsonObject.getString("name"));	// getString返回的是字符串
System.out.println(jsonObject.getIntValue("age"));  // getIntValue返回的是int類型
  • 取出 blog.csdn.net,即對象里面的字符串
// 直接getJSONObject獲取到site的對象,再getString獲取name的值
System.out.println(jsonObject.getJSONObject("site").getString("name"));	
  • 取出 alibaba,即數(shù)組里第一個(gè)對象里面的字符串
// getJSONArray獲取sites的數(shù)組,再getJSONObject(0)獲取數(shù)組中第一個(gè)對象,再getString獲取name值
System.out.println(jsonObject.getJSONArray("sites").getJSONObject(0).getString("name"));

總結(jié)

人生沒有完滿,始終存在殘缺,自己的心地是自己的世界,活得不快樂,本質(zhì)上源于自己的無能。一個(gè)人,應(yīng)該有力量,將自己從一切沉重的、老舊的、無精打采的事物里拔出來,用不斷的嘗試、變通改變自己的境遇。

java 多層json遞歸解析,Java,java,json文章來源地址http://www.zghlxwxcb.cn/news/detail-765964.html

到了這里,關(guān)于Java 解析多層嵌套json數(shù)據(jù)及json字符串與對象的相互轉(zhuǎn)換的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • mysql 解析json字符串、數(shù)組字符串、json數(shù)組字符串

    mysql 解析json字符串、數(shù)組字符串、json數(shù)組字符串

    筆者使用mysql 5.7進(jìn)行了一次json字符串的解析,因?yàn)橐恢痹诟愦髷?shù)據(jù)相關(guān)的數(shù)據(jù)庫、olap等,太久沒有用mysql5.x的版本,一些函數(shù)已經(jīng)不知道支不支持,我的同事建議我使用like、rlike模糊匹配的方式,身為數(shù)據(jù)人我不太喜歡用這種手段,因?yàn)樗麄儽容^低效。于是我想這里總結(jié)一下

    2024年02月16日
    瀏覽(31)
  • 實(shí)體類中嵌套Enum類型并想轉(zhuǎn)換成JSON字符串時(shí)遇到的問題。

    先說明問題的產(chǎn)生,在自己寫著玩的時(shí)候,新建了一個(gè) User 類如下: 不難看出User類中,用到了枚舉類把性別規(guī)定成了兩個(gè)。 下面是SexEnum類: 這里,當(dāng)我想通過工具類將其轉(zhuǎn)換成json字符串并且讓枚舉中的 值能返回對應(yīng)的文字時(shí),出現(xiàn)了問題。返回的值是枚舉類的 屬性名 而

    2024年02月08日
    瀏覽(21)
  • java將json字符串?dāng)?shù)據(jù)轉(zhuǎn)換為List對象

    方法一:使用Jackson庫 pom.xml文件中添加以下依賴: 轉(zhuǎn)換之后直接可以用list操作了 方法二:使用Gson庫 res: json格式的數(shù)據(jù) 方法二比方法一使用起來更簡便一點(diǎn)

    2024年02月21日
    瀏覽(30)
  • Oracle解析JSON字符串

    Oracle解析JSON字符串

    假設(shè)某個(gè)字段存儲的JSON字符串,我們不想查出來后通過一些常見的編程語言處理( JSON.parse() 或者是 JSONObject.parseObject() 等),想直接在數(shù)據(jù)庫上處理,又該如何書寫呢? 其實(shí)在 ORACLE 中也支持多種機(jī)制去處理JSON數(shù)據(jù),例如有操作函數(shù)JSON_ARRAY、JSON_EXISTS、JSON_VALUES、JSON_TABLE、

    2024年02月16日
    瀏覽(21)
  • 7. Hive解析JSON字符串、JSON數(shù)組

    Hive解析JSON字符串 1. get_json_object 語法: get_json_object(json_string, path) json_string 是要解析的JSON字符串 path 是用于指定要提取的字段路徑的字符串 局限性 get_json_object 函數(shù)的性能會受到 JSON數(shù)據(jù)的結(jié)構(gòu)和大小 的影響。對于較復(fù)雜的嵌套結(jié)構(gòu),考慮使用Hive的其他函數(shù)或自定義函數(shù)來

    2024年02月11日
    瀏覽(19)
  • 一個(gè)退役中校教你如何用go語言寫一個(gè)基于B+樹的json數(shù)據(jù)庫(進(jìn)階篇)之json字符串解析為BsTr結(jié)構(gòu)(一)

    1.對象式j(luò)son字符串 s := \\\"{\\\"put\\\":{\\\"putjsontest\\\":{\\\"aaa\\\":\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"aaab\\\":true,\\\"arrarrstrct\\\":{\\\"nnn\\\":-1234567890,\\\"ccc\\\":[[\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"nmbndfvdfgfdg\\\"],[\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"poiuiyyttt\\\"]]},\\\"ddd\\\":\\\"sdftsdfs\\\\dfe29asdf\\\",\\\"fff\\\":false,\\\"comboolarr\\\":[{\\\"boolarr0\\\":[true,false]},{\\\"boolarr1\\\":[true,false]}]}

    2024年02月21日
    瀏覽(19)
  • C#2010 .NET4 解析 json 字符串

    C#2010 .NET4 解析 json 字符串

    下載Newtonsoft.Json.dll ?

    2024年02月11日
    瀏覽(22)
  • Golang校驗(yàn)字符串是否JSON格式方法json.Valid源碼解析

    上篇文章《Golang中如何校驗(yàn)字符串是否為JSON格式?》主要講解了使用json.Valid校驗(yàn)字符串是否JSON格式的使用方法,本文來剖析一下json.Valid方法的源碼。 json.Valid方法定義: scan := newScanner() 獲取一個(gè) scanner 類型的對象,關(guān)鍵的是checkValid方法,checkValid源碼如下: 首先調(diào)用了sc

    2023年04月26日
    瀏覽(18)
  • Java中如何將字符串轉(zhuǎn)換為JSON格式字符串

    Java中如何將字符串轉(zhuǎn)換為JSON格式字符串 在Java編程中,我們經(jīng)常需要處理JSON數(shù)據(jù)格式。有時(shí)候,我們需要將一個(gè)普通的字符串轉(zhuǎn)換為JSON格式的字符串。幸運(yùn)的是,Java提供了多種方法來實(shí)現(xiàn)這個(gè)目標(biāo)。在本文中,我將介紹兩種常見的方法來將字符串轉(zhuǎn)換為JSON格式字符串。 方

    2024年02月06日
    瀏覽(26)
  • 【微信小程序】使用 JSON.parse 方法將返回的 JSON 字符串解析為對象

    在微信小程序中,你可以使用 JSON.parse 方法將返回的 JSON 字符串解析為對象。以下是實(shí)現(xiàn)類似功能的示例代碼: 在上述代碼中,我們使用 JSON.parse 方法將返回的 JSON 字符串解析為對象。然后,我們可以通過點(diǎn)語法或方括號語法訪問解析后的對象的屬性,例如 data.result 。 請注

    2024年02月15日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包