java中JsonObject與JsonArray轉(zhuǎn)換方法實(shí)例
備忘一下,首先
這是一個(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類型為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對(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值下來,直接傳一個(gè)object不行么?不行么?不行么???????
JsonArrayStr 轉(zhuǎn)換為 JsonObjectStr
有什么好說的,加括號(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)文章希望大家以后多多支持腳本之家!
- Java中的JSONObject使用解讀
- Java中的JSONObject使用及錯(cuò)誤處理詳解
- Java如何修改JsonObject中的屬性值
- Java中如何將String轉(zhuǎn)JSONObject
- java中如何判斷JSONObject是否存在某個(gè)Key
- Java JSONObject與JSONArray對(duì)象案例詳解
- Java 如何遍歷JsonObject對(duì)象
- JAVA中JSONObject對(duì)象和Map對(duì)象之間的相互轉(zhuǎn)換
- Java使用JSONObject操作json實(shí)例解析
- java中不同版本JSONObject區(qū)別小結(jié)
相關(guān)文章
JavaCV調(diào)用百度AI實(shí)現(xiàn)人臉檢測(cè)方法詳解
在檢測(cè)人臉數(shù)量、位置、性別、口罩等場(chǎng)景時(shí),可以考慮使用百度開放平臺(tái)提供的web接口,一個(gè)web請(qǐng)求就能完成檢測(cè)得到結(jié)果。本文就為大家介紹JavaCV如何調(diào)用百度AI實(shí)現(xiàn)最簡單的人臉檢測(cè),需要的可以參考一下2022-01-01IDEA?Ui設(shè)計(jì)器JFormDesigner?永久激活插件+注冊(cè)機(jī)(親測(cè)一直在用)
這篇文章主要介紹了IDEA?Ui設(shè)計(jì)器JFormDesigner?永久激活----插件+注冊(cè)機(jī)?自己一直在用的版本和注冊(cè)機(jī),非常不錯(cuò),本文通過圖文并茂的形式給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08Java因項(xiàng)目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露
這篇文章主要介紹了Java因項(xiàng)目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實(shí)現(xiàn)方法
這篇文章主要介紹了Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實(shí)現(xiàn)方法,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-10-10基于@JsonSerialize和@JsonInclude注解使用方法
這篇文章主要介紹了@JsonSerialize和@JsonInclude注解使用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10解決Spring boot整合mybatis,xml資源文件放置及路徑配置問題
這篇文章主要介紹了解決Spring boot整合mybatis,xml資源文件放置及路徑配置問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-12-12聊聊spring @Transactional 事務(wù)無法使用的可能原因
這篇文章主要介紹了spring @Transactional 事務(wù)無法使用的可能原因,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07使用java.nio.file?庫優(yōu)雅的操作文件詳解
這篇文章主要介紹了使用java.nio.file?庫優(yōu)雅的操作文件詳解,需要的朋友可以參考下2023-05-05