gsonjava代碼 gsonfromjson map

求java合并json數(shù)據(jù)的代碼

我想了一下,但是得有一個(gè)前提,就是第一個(gè)json數(shù)組的size必須和第二個(gè)json數(shù)組的size相同,并且一一對(duì)應(yīng),否則將造成數(shù)組溢出。

綏德ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

如果是基于上面這個(gè)前提,那么實(shí)現(xiàn)的方法就簡(jiǎn)單了。

操作json對(duì)象,其實(shí)標(biāo)準(zhǔn)的方法是將實(shí)體類轉(zhuǎn)換成json后再操作,我這里的話為了便捷直接使用谷歌的Gson來創(chuàng)建JsonObject了,其他的json依賴還有阿里巴巴的FastJson等等,看你平時(shí)用什么習(xí)慣。

引入Gson依賴:

dependency

groupIdcom.google.code.gson/groupId

artifactIdgson/artifactId

version2.8.0/version

/dependency

實(shí)現(xiàn)代碼:

public class Main {

public static void main(String[] args) {

JsonArray jsonArray1 = new JsonArray();

JsonObject json11 = new JsonObject();

json11.addProperty("數(shù)據(jù)1", "0000");

json11.addProperty("數(shù)據(jù)2", "1111");

JsonObject json12 = new JsonObject();

json12.addProperty("數(shù)據(jù)1", "0000");

json12.addProperty("數(shù)據(jù)2", "1111");

JsonObject json13 = new JsonObject();

json13.addProperty("數(shù)據(jù)1", "0000");

json13.addProperty("數(shù)據(jù)2", "1111");

jsonArray1.add(json11);

jsonArray1.add(json12);

jsonArray1.add(json13);

System.out.println(jsonArray1);

JsonArray jsonArray2 = new JsonArray();

JsonObject json21 = new JsonObject();

json21.addProperty("數(shù)據(jù)3", "6666");

JsonObject json22 = new JsonObject();

json22.addProperty("數(shù)據(jù)3", "6666");

JsonObject json23 = new JsonObject();

json23.addProperty("數(shù)據(jù)3", "6666");

jsonArray2.add(json21);

jsonArray2.add(json22);

jsonArray2.add(json23);

System.out.println(jsonArray2);

//遍歷json數(shù)組,按位取出對(duì)象

for (int i = 0; i jsonArray1.size(); i++) {

JsonObject json1 = jsonArray1.get(i).getAsJsonObject();

JsonObject json3 = jsonArray2.get(i).getAsJsonObject();

//遍歷數(shù)據(jù)3內(nèi)容,通過Entry獲取數(shù)據(jù)3的key和value,并合并到數(shù)據(jù)1中

for (Map.EntryString, JsonElement item : json3.entrySet()) {

json1.addProperty(item.getKey(), item.getValue().getAsString());

}

}

System.out.println(jsonArray1);

}

}

整體思路為:遍歷兩個(gè)json數(shù)組,按位進(jìn)行合并操作。合并時(shí),遍歷數(shù)據(jù)3的jsonObject,獲取其key和value,并將其合并到數(shù)據(jù)1中即可。

運(yùn)行結(jié)果:

java 解析json字符串

你好:

后臺(tái)拆分json

private?String?interactPrizeAll;????//json?使用字符串來接收

方法中的代碼:

Gson?gson?=?new?Gson();

InteractPrize?interactPrize?=new?InteractPrize();

//gson用泛型?轉(zhuǎn)List數(shù)組?多個(gè)對(duì)象

ListInteractPrize??interactPrizeList?=?gson.fromJson(interactPrizeAll,?new?TypeTokenListInteractPrize(){}.getType());?//TypeToken,它是gson提供的數(shù)據(jù)類型轉(zhuǎn)換器,可以支持各種數(shù)據(jù)集合類型轉(zhuǎn)換?

for(int?i?=?0;?i??interactPrizeList.size();?i++)??

{??

interactPrize?=?interactPrizeList.get(i);//獲取每一個(gè)對(duì)象

}

這一種方法是轉(zhuǎn)單個(gè)對(duì)象時(shí)使用的

//gson?轉(zhuǎn)對(duì)象?單個(gè)對(duì)象

//interactPrize?=?gson.fromJso(interactPrizeAll,InteractPrize.class);

這個(gè)方法是我后臺(tái)拼的json往前臺(tái)傳的方法

jsonStrAll.append("{"+?"\""+"catid"+"\""+":"+"\""+c.getCatid()+"\""+","+"\""+"catname"+"\""+":"+"\""+c.getCatname()+"\""+","+?"\""+"catdesc"+"\""+":"+"\""+c.getCatdesc()+"\""+","+"\""+"showinnav"+"\""+":"+"\""+c.getShowinnav()+"\""+","+"\""+"sortorder"+"\""+":"+"\""+c.getSortorder()+"\""+","+"level:"+"\""+"0"+"\""+",parent:"+"\""+"0"+"\""+",isLeaf:true,expanded:false,"+"loaded:true},");

你自己挑著用吧!

Gson 在java 如何使用啊???

google的gson,心想google的應(yīng)該不會(huì)差,帶著一些好奇心,我開始使用了gson。

經(jīng)過比較,gson和其他現(xiàn)有java json類庫(kù)最大的不同時(shí)gson需要序列化得實(shí)體類不需要使用annotation來標(biāo)識(shí)需要序列化得字段,同時(shí)gson又可以通過使用annotation來靈活配置需要序列化的字段。

這里提供gson-2.2.4.jar的下載(密碼:4Sk4)

下面是一個(gè)簡(jiǎn)單的例子:

//一個(gè) Person 實(shí)體

public class Person {

private String name;

private int age;

//以下是get,set方法

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

}

實(shí)體很簡(jiǎn)單,兩個(gè)字段,當(dāng)然實(shí)體中的字段也可以是List或者Set類型的。

Gson gson = new Gson();

ListPerson persons = new ArrayListPerson();

for (int i = 0; i 10; i++) {

Person p = new Person();

p.setName("name" + i);

p.setAge(i * 5);

persons.add(p);

}

String str = gson.toJson(persons);

上面的代碼重點(diǎn)是Gson對(duì)象,它提供了toJason()方法將對(duì)象轉(zhuǎn)換成Json字符串,上面代碼的str對(duì)象值為:

[

{"name":"name0","age":0},

{"name":"name1","age":5},

{"name":"name2","age":10},

{"name":"name3","age":15},

{"name":"name4","age":20},

{"name":"name5","age":25},

{"name":"name6","age":30},

{"name":"name7","age":35},

{"name":"name8","age":40},

{"name":"name9","age":45}

]

很標(biāo)準(zhǔn)的json數(shù)據(jù),很簡(jiǎn)單吧,呵呵。

下面來看看gson的反序列化,Gson提供了fromJson()方法來實(shí)現(xiàn)從Json相關(guān)對(duì)象到j(luò)ava實(shí)體的方法。

在日常應(yīng)用中,我們一般都會(huì)碰到兩種情況,轉(zhuǎn)成單一實(shí)體對(duì)象和轉(zhuǎn)換成對(duì)象列表或者其他結(jié)構(gòu)。

先來看第一種:

比如json字符串為:[{"name":"name0","age":0}]

Person person = gson.fromJson(str, Person.class);

提供兩個(gè)參數(shù),分別是json字符串以及需要轉(zhuǎn)換對(duì)象的類型。

標(biāo)題名稱:gsonjava代碼 gsonfromjson map
本文路徑:http://muchs.cn/article12/dosjpdc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)、虛擬主機(jī)、電子商務(wù)軟件開發(fā)、品牌網(wǎng)站制作、網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司