溫馨提示×

溫馨提示×

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

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

java中JsonObject與JsonArray怎么轉(zhuǎn)換

發(fā)布時間:2023-04-21 14:52:39 來源:億速云 閱讀:130 作者:iii 欄目:開發(fā)技術(shù)

這篇文章主要介紹“java中JsonObject與JsonArray怎么轉(zhuǎn)換”,在日常操作中,相信很多人在java中JsonObject與JsonArray怎么轉(zhuǎn)換問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java中JsonObject與JsonArray怎么轉(zhuǎn)換”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

備忘一下,首先

這是一個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()

到此,關(guān)于“java中JsonObject與JsonArray怎么轉(zhuǎn)換”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI