最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java中JsonObject與JsonArray轉(zhuǎn)換方法實例

 更新時間:2023年04月21日 10:58:34   投稿:daisy  
在項目日常開發(fā)中常常會遇到JSONArray和JSONObject的轉(zhuǎn)換,很多公司剛?cè)肼毜男∶刃聲ㄔ谶@里,下面這篇文章主要給大家介紹了關(guān)于java中JsonObject與JsonArray轉(zhuǎn)換方法的相關(guān)資料,需要的朋友可以參考下

備忘一下,首先

這是一個JsonArrayStr,他可以轉(zhuǎn)換為JsonArray。

[{"name":"a1"},{"name":"a2"}]

這是一個JsonObjectStr,他可以轉(zhuǎn)換為JsonObject。

{"result":[{"name":"a1"},{"name":"a2"}]}

JsonObject轉(zhuǎn)換為java對象、JsonArray轉(zhuǎn)換為Java對象

JsonObject的value為JsonArray,對應(yīng)的java類型為List。在案例中,java代碼如下(這里用的內(nèi)部類)

@Data
@AllArgsConstructor
@NoArgsConstructor
class AList{
    private List<PersonA> result;
}

@Data
@AllArgsConstructor
@NoArgsConstructor
class PersonA{
    private String name;
}

使用fastjson轉(zhuǎn)換jsonStr為java對象,完整代碼如下

public class JsonTest {

    public static void main(String[] args) {

        String strArray  ="[{\"name\":\"a1\"},{\"name\":\"a2\"}]";
        String strObject  ="{\"result\":[{\"name\":\"a1\"},{\"name\":\"a2\"}]}";
        // parseArray保證屬性key一致即可正確轉(zhuǎn)換
        List<PersonA> personAList = JSON.parseArray(strArray, PersonA.class);
        // parseObject需要保證屬性key一致即可正確轉(zhuǎn)換
        AList aList = JSON.parseObject(strObject, AList.class);

    }
}

@Data
@AllArgsConstructor
@NoArgsConstructor
class AList{

    private List<PersonA> result;

}

@Data
@AllArgsConstructor
@NoArgsConstructor
class PersonA{
    private String name;
}

使用hutool轉(zhuǎn)換jsonStr為java對象,核心代碼如下

 List<PersonA> personAList = JSONUtil.toList(JSONUtil.parseArray(strArray), PersonA.class);

JsonArray轉(zhuǎn)換為JsonObject

已知一個JsonArrayStr,內(nèi)容為。

[{"name":"a1"},{"name":"a2"}]

不可以直接parseObject,JsonObject格式為{},且含有鍵值對。

使用以下方法將JsonArrayStr轉(zhuǎn)換為JsonObject對象:

使用fastjson

        JSONArray array = JSON.parseArray(strArray);
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("result",array);

使用hutool

        JSONArray array = JSONUtil.parseObj(strArray);;
        JSONObject jsonObject = new JSONObject();
        jsonObject.put("result",array);

即將JsonArrayStr轉(zhuǎn)換為JsonObjectStr

{"result":[{"name":"a1"},{"name":"a2"}]}

真的搞不懂,為什么上游傳一個json值下來,直接傳一個object不行么?不行么?不行么???????

JsonArrayStr 轉(zhuǎn)換為 JsonObjectStr

有什么好說的,加括號,加鍵。

推薦使用hutool的StrUtil.wrap()

        String strArray = "[{\"name\":\"a1\"},{\"name\":\"a2\"}]";
        String strObject  = StrUtil.wrap(strArray, "{\"result\":", "}");

最后得到的值為

{"result":[{"name":"a1"},{"name":"a2"}]}

補充:java中JSONObject和JSONArray解析

1.將xml字符串轉(zhuǎn)換為JSONObject字符串

    org.json.JSONObject jsonObjectParent=XML.toJSONObject(josnStr);

2.解析JSONObject內(nèi)容

如果解析的內(nèi)容是json數(shù)據(jù),就是帶大括號的{},就用getJSONObject(),如果解析的內(nèi)容json數(shù)組,就是帶中括號[]的,就用    getJSONArray()

總結(jié)

到此這篇關(guān)于java中JsonObject與JsonArray轉(zhuǎn)換的文章就介紹到這了,更多相關(guān)java JsonObject與JsonArray轉(zhuǎn)換內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • spring boot 使用profile來分區(qū)配置的操作

    spring boot 使用profile來分區(qū)配置的操作

    這篇文章主要介紹了spring boot使用profile來分區(qū)配置的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • java中jdk代理和cglib代理使用步驟詳解

    java中jdk代理和cglib代理使用步驟詳解

    這篇文章主要給大家介紹了關(guān)于java中jdk代理和cglib代理使用步驟的相關(guān)資料,JDK代理和CGLIB是Java中兩種常見的代理實現(xiàn)方式,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • Java因項目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露

    Java因項目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露

    這篇文章主要介紹了Java因項目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露解決辦法,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-09-09
  • SpringBoot詳解自定義Stater的應(yīng)用

    SpringBoot詳解自定義Stater的應(yīng)用

    Springboot的出現(xiàn)極大的簡化了開發(fā)人員的配置,而這之中的一大利器便是springboot的starter,starter是springboot的核心組成部分,springboot官方同時也為開發(fā)人員封裝了各種各樣方便好用的starter模塊
    2022-07-07
  • SpringBoot使用MyBatis實現(xiàn)數(shù)據(jù)的CRUD

    SpringBoot使用MyBatis實現(xiàn)數(shù)據(jù)的CRUD

    MyBatis是一個輕量級的對象關(guān)系映射(Object-Relational Mapping,ORM)框架,它允許開發(fā)者通過編寫SQL動態(tài)查詢數(shù)據(jù)庫,而無需顯式地操作JDBC,對于增刪改查操作,MyBatis提供了一種基于XML或注解的方式來進行,本文介紹了SpringBoot使用MyBatis實現(xiàn)數(shù)據(jù)的CRUD
    2024-11-11
  • 詳解Java中ByteArray字節(jié)數(shù)組的輸入輸出流的用法

    詳解Java中ByteArray字節(jié)數(shù)組的輸入輸出流的用法

    ByteArrayInputStream和ByteArrayOutputStream分別集成自InputStream和OutputStream這兩個輸入和輸出流,這里我們就來詳解Java中ByteArray字節(jié)數(shù)組的輸入輸出流的用法,需要的朋友可以參考下
    2016-06-06
  • 基于ClasspathResource路徑問題的解決

    基于ClasspathResource路徑問題的解決

    這篇文章主要介紹了ClasspathResource路徑問題的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • java中java.util.Date和java.sql.Date之間的轉(zhuǎn)換的示例

    java中java.util.Date和java.sql.Date之間的轉(zhuǎn)換的示例

    java.util.Date是java.sql.Date的父類,有時候在和SqlServer數(shù)據(jù)庫打交道時,也會遇到,本文主要介紹了java中java.util.Date和java.sql.Date之間的轉(zhuǎn)換的示例,具有一定的參考價值,感興趣的可以了解一下
    2024-05-05
  • 基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程

    基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程

    Elasticsearch也是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,能夠做到實時搜索,且穩(wěn)定、可靠、快速,安裝使用方便,這里我們就來看一下基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程:
    2016-06-06
  • Spring實戰(zhàn)之Bean定義中的SpEL表達式語言支持操作示例

    Spring實戰(zhàn)之Bean定義中的SpEL表達式語言支持操作示例

    這篇文章主要介紹了Spring實戰(zhàn)之Bean定義中的SpEL表達式語言支持操作,結(jié)合實例形式分析了Bean定義中的SpEL表達式語言操作步驟與實現(xiàn)技巧,需要的朋友可以參考下
    2019-12-12

最新評論

炉霍县| 礼泉县| 会宁县| 彰武县| 洛隆县| 玉环县| 宜昌市| 英德市| 陵川县| 金昌市| 罗甸县| 辉县市| 普格县| 云霄县| 华安县| 秀山| 二连浩特市| 舟曲县| 定边县| 施甸县| 洛宁县| 蒙城县| 马尔康县| 长兴县| 离岛区| 马边| 铁岭县| 元氏县| 呼伦贝尔市| 中西区| 久治县| 彰武县| 遂平县| 沈阳市| 呼玛县| 洛宁县| 佳木斯市| 石景山区| 克拉玛依市| 连南| 和硕县|