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對象、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
已知一個(gè)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"}]}
真的搞不懂,為什么上游傳一個(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)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
spring boot 使用profile來分區(qū)配置的操作
這篇文章主要介紹了spring boot使用profile來分區(qū)配置的操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-07-07
Java因項(xiàng)目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露
這篇文章主要介紹了Java因項(xiàng)目配置不當(dāng)而引發(fā)的數(shù)據(jù)泄露解決辦法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-09-09
SpringBoot詳解自定義Stater的應(yīng)用
Springboot的出現(xiàn)極大的簡化了開發(fā)人員的配置,而這之中的一大利器便是springboot的starter,starter是springboot的核心組成部分,springboot官方同時(shí)也為開發(fā)人員封裝了各種各樣方便好用的starter模塊2022-07-07
SpringBoot使用MyBatis實(shí)現(xiàn)數(shù)據(jù)的CRUD
MyBatis是一個(gè)輕量級的對象關(guān)系映射(Object-Relational Mapping,ORM)框架,它允許開發(fā)者通過編寫SQL動(dòng)態(tài)查詢數(shù)據(jù)庫,而無需顯式地操作JDBC,對于增刪改查操作,MyBatis提供了一種基于XML或注解的方式來進(jìn)行,本文介紹了SpringBoot使用MyBatis實(shí)現(xiàn)數(shù)據(jù)的CRUD2024-11-11
詳解Java中ByteArray字節(jié)數(shù)組的輸入輸出流的用法
ByteArrayInputStream和ByteArrayOutputStream分別集成自InputStream和OutputStream這兩個(gè)輸入和輸出流,這里我們就來詳解Java中ByteArray字節(jié)數(shù)組的輸入輸出流的用法,需要的朋友可以參考下2016-06-06
java中java.util.Date和java.sql.Date之間的轉(zhuǎn)換的示例
java.util.Date是java.sql.Date的父類,有時(shí)候在和SqlServer數(shù)據(jù)庫打交道時(shí),也會(huì)遇到,本文主要介紹了java中java.util.Date和java.sql.Date之間的轉(zhuǎn)換的示例,具有一定的參考價(jià)值,感興趣的可以了解一下2024-05-05
基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程
Elasticsearch也是用Java開發(fā)的,并作為Apache許可條款下的開放源碼發(fā)布,能夠做到實(shí)時(shí)搜索,且穩(wěn)定、可靠、快速,安裝使用方便,這里我們就來看一下基于Lucene的Java搜索服務(wù)器Elasticsearch安裝使用教程:2016-06-06
Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作示例
這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean定義中的SpEL表達(dá)式語言支持操作,結(jié)合實(shí)例形式分析了Bean定義中的SpEL表達(dá)式語言操作步驟與實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-12-12

