java中JsonObject與JsonArray轉(zhuǎ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)文章
JavaCV調(diào)用百度AI實現(xiàn)人臉檢測方法詳解
在檢測人臉數(shù)量、位置、性別、口罩等場景時,可以考慮使用百度開放平臺提供的web接口,一個web請求就能完成檢測得到結(jié)果。本文就為大家介紹JavaCV如何調(diào)用百度AI實現(xiàn)最簡單的人臉檢測,需要的可以參考一下2022-01-01IDEA?Ui設(shè)計器JFormDesigner?永久激活插件+注冊機(親測一直在用)
這篇文章主要介紹了IDEA?Ui設(shè)計器JFormDesigner?永久激活----插件+注冊機?自己一直在用的版本和注冊機,非常不錯,本文通過圖文并茂的形式給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08Java因項目配置不當而引發(fā)的數(shù)據(jù)泄露
這篇文章主要介紹了Java因項目配置不當而引發(fā)的數(shù)據(jù)泄露解決辦法,本文給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實現(xiàn)方法
這篇文章主要介紹了Java設(shè)置Access-Control-Allow-Origin允許多域名訪問的實現(xiàn)方法,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-10-10基于@JsonSerialize和@JsonInclude注解使用方法
這篇文章主要介紹了@JsonSerialize和@JsonInclude注解使用方法,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-10-10解決Spring boot整合mybatis,xml資源文件放置及路徑配置問題
這篇文章主要介紹了解決Spring boot整合mybatis,xml資源文件放置及路徑配置問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-12-12聊聊spring @Transactional 事務(wù)無法使用的可能原因
這篇文章主要介紹了spring @Transactional 事務(wù)無法使用的可能原因,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07使用java.nio.file?庫優(yōu)雅的操作文件詳解
這篇文章主要介紹了使用java.nio.file?庫優(yōu)雅的操作文件詳解,需要的朋友可以參考下2023-05-05