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

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

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

備忘一下,首先

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

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

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

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

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

JsonObject的value為JsonArray,對(duì)應(yīng)的java類型為L(zhǎng)ist。在案例中,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對(duì)象,完整代碼如下

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對(duì)象,核心代碼如下

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

JsonArray轉(zhuǎn)換為JsonObject

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

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

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

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

使用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"}]}

真的搞不懂,為什么上游傳一個(gè)json值下來(lái),直接傳一個(gè)object不行么?不行么?不行么???????

JsonArrayStr 轉(zhuǎn)換為 JsonObjectStr

有什么好說(shuō)的,加括號(hào),加鍵。

推薦使用hutool的StrUtil.wrap()

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

最后得到的值為

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

補(bǔ)充:java中JSONObject和JSONArray解析

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

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

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

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

總結(jié)

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

相關(guān)文章

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

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

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

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

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

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

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

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

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

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

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

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

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

    基于ClasspathResource路徑問(wèn)題的解決

    這篇文章主要介紹了ClasspathResource路徑問(wèn)題的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    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的父類,有時(shí)候在和SqlServer數(shù)據(jù)庫(kù)打交道時(shí),也會(huì)遇到,本文主要介紹了java中java.util.Date和java.sql.Date之間的轉(zhuǎn)換的示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-05-05
  • 基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程

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

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

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

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

最新評(píng)論

大同市| 藁城市| 宁河县| 泰顺县| 陆丰市| 调兵山市| 泰来县| 西林县| 信阳市| 玉环县| 乌苏市| 东明县| 台中县| 宜都市| 阳新县| 台北市| 威海市| 巴塘县| 庄浪县| 阳曲县| 鄂托克前旗| 商都县| 兴和县| 客服| 宁武县| 山东| 轮台县| 宁晋县| 涡阳县| 怀远县| 丘北县| 巴东县| 东丽区| 化隆| 忻州市| 台江县| 郎溪县| 同仁县| 夏河县| 三明市| 潼关县|