Java?從json提取數(shù)組并轉(zhuǎn)換為list的操作方法
Java 從json提取數(shù)組并轉(zhuǎn)換為list
這里ret表示json字符串原文
// 解析為JSONObject
JSONObject jsonObject = JSONObject.parseObject(ret);
// 提取出JSONArray
JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("org_list"));
// 將JSONArray轉(zhuǎn)為L(zhǎng)ist列表
String str = JSONObject.toJSONString(jsonArray);
List<Org> list = JSONObject.parseArray(str, Org.class);使用getJSONArray()獲取到j(luò)sonarray后,再將jsonArray轉(zhuǎn)換為字符串,最后將字符串解析為L(zhǎng)ist列表。
代碼中的Org是我List列表中元素的類型。
Java單個(gè)對(duì)象和List對(duì)象轉(zhuǎn)換成Json,Json轉(zhuǎn)List
(一)使用單個(gè)對(duì)象轉(zhuǎn)換JSON對(duì)象
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.junit.Test;
import com.css.eshop.exception.DataAccessException;
import com.css.eshop.model.VoucherInfo;
import com.css.eshop.util.HttpClientUtil;
import com.css.eshop.util.LoadStaticReferenceTables;
import net.sf.json.JSONArray;
import net.sf.json.JSONObject;
public class TestPut {
protected Log logger = LogFactory.getLog(this.getClass().getName());
@Test
public void getOneJson(){//測(cè)試轉(zhuǎn)換成Json,單個(gè)對(duì)象
VoucherInfo vo1=new VoucherInfo();
vo1.setVoucherValue(2131);vo1.setVoucherCode("小可愛(ài)的");
JSONObject updateJsonObj = JSONObject.fromObject(vo1);//轉(zhuǎn)換成json格式
logger.info("---轉(zhuǎn)換成json格式:---"+updateJsonObj.toString());//提取access_token節(jié)點(diǎn)數(shù)據(jù)
}
}輸出轉(zhuǎn)換后日志:

17-10-2018 17:35 INFO TestPut:35 - ---轉(zhuǎn)換成json格式:---{"labourCost":0,"refMetalPrice":0,"voucherCoNumber":"","voucherCode":"小可愛(ài)的","voucherType":"","voucherValue":2131,"weight":0,"weightUnit":""}
(二)多個(gè)對(duì)象存到List,再轉(zhuǎn)換成JSON
@Test
public void getArrayList(){//測(cè)試轉(zhuǎn)換成Json,List轉(zhuǎn)換成JSONList
List<VoucherInfo> vouchersList=new ArrayList<VoucherInfo>();
VoucherInfo vo1=new VoucherInfo();
VoucherInfo vo2=new VoucherInfo();
vo1.setVoucherValue(2131);vo1.setVoucherCode("小可愛(ài)的");
vo2.setVoucherValue(100);vo2.setVoucherCode("小可愛(ài)的222");
vouchersList.add(vo1);vouchersList.add(vo2);
JSONArray jsonArray = JSONArray.fromObject(vouchersList);
logger.info("--獲取到轉(zhuǎn)換為json格式的內(nèi)容:"+jsonArray.toString());//提取access_token節(jié)點(diǎn)數(shù)據(jù)
}輸出日志:

17-10-2018 17:36 INFO TestPut:47 - --獲取到轉(zhuǎn)換為json格式的內(nèi)容:[{"labourCost":0,"refMetalPrice":0,"voucherCoNumber":"","voucherCode":"小可愛(ài)的","voucherType":"","voucherValue":2131,"weight":0,"weightUnit":""},{"labourCost":0,"refMetalPrice":0,"voucherCoNumber":"","voucherCode":"小可愛(ài)的222","voucherType":"","voucherValue":100,"weight":0,"weightUnit":""}]
(三)json的list對(duì)象轉(zhuǎn)List對(duì)象
先轉(zhuǎn)jsonArray,再轉(zhuǎn)object提取數(shù)據(jù)
@Test
public void test1210() {
List<VoucherInfo> vouchers=new ArrayList<VoucherInfo>();
VoucherInfo voucherInfo1=new VoucherInfo();VoucherInfo voucherInfo2=new VoucherInfo();
voucherInfo1.setVoucherCode("coupncdeC0000003");voucherInfo1.setVoucherType("DISC_VOUCHER");
voucherInfo1.setVoucherCoNumber(null);voucherInfo1.setLabourCost(0.0);voucherInfo1.setWeight(0.0);
voucherInfo1.setVoucherValue(1000.0);voucherInfo1.setRefMetalPrice(0.0);
voucherInfo2.setVoucherCode("coupncdeC0000001");voucherInfo2.setVoucherType("DISC_VOUCHER");
voucherInfo2.setVoucherCoNumber(null);voucherInfo2.setLabourCost(0.0);voucherInfo2.setWeight(0.0);
voucherInfo2.setVoucherValue(1000.0);voucherInfo2.setRefMetalPrice(0.0);
vouchers.add(voucherInfo1);vouchers.add(voucherInfo2);
double ecoupon_amt=0;
if(null != vouchers && vouchers.size()>0){
JSONArray vouchersListJsonArray = JSONArray.fromObject(vouchers);
String vouchersListJson=vouchersListJsonArray.toString();
System.out.println(vouchersListJson);
if(null != vouchersListJson){
JSONArray jsonArray1 = JSONArray.fromObject(vouchersListJson);
//循環(huán)獲取json數(shù)組中的 json 對(duì)象,然后轉(zhuǎn)換為 object
for (int j = 0; j < jsonArray1.size(); j++) {
JSONObject jsonObject2 = jsonArray1.getJSONObject(j);
VoucherInfo cust = (VoucherInfo) JSONObject.toBean(jsonObject2, VoucherInfo.class);
ecoupon_amt=ecoupon_amt+cust.getVoucherValue();
}
}
}
System.out.println(ecoupon_amt);
}到此這篇關(guān)于Java 從json提取出數(shù)組并轉(zhuǎn)換為list的文章就介紹到這了,更多相關(guān)java json提取數(shù)組轉(zhuǎn)換為list內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- java中List數(shù)組用逗號(hào)分隔開(kāi)轉(zhuǎn)成字符串2種方法
- Java數(shù)組轉(zhuǎn)換為L(zhǎng)ist的四種方式
- Java中拷貝list數(shù)組幾種常見(jiàn)的方法
- Java中List與數(shù)組之間的相互轉(zhuǎn)換
- Java中如何將?int[]?數(shù)組轉(zhuǎn)換為?ArrayList(list)
- Java8使用Stream流實(shí)現(xiàn)List列表查詢、統(tǒng)計(jì)、排序以及分組
- Java中List使用stream流轉(zhuǎn)成map的幾種方式詳解
- Java數(shù)組轉(zhuǎn)List及Stream的基本方法使用方法
相關(guān)文章
Spring延遲Bean初始化的實(shí)現(xiàn)示例
延遲初始化也叫做惰性初始化,指不提前初始化Bean,而是只有在真正使用時(shí)才創(chuàng)建及初始化Bean,本文主要介紹了Spring延遲Bean初始化的實(shí)現(xiàn)示例,感興趣的可以了解一下2024-06-06
Springboot3利用redis生成唯一訂單號(hào)的實(shí)現(xiàn)示例
本文主要介紹了Springboot3利用redis生成唯一訂單號(hào)的實(shí)現(xiàn)示例,包括UUID、雪花算法和數(shù)據(jù)庫(kù)約束,具有一定的參考價(jià)值,感興趣的可以了解一下2025-03-03
解決@MapperScan和@Mapper共存之坑X(jué)xxMapper?that?could?not?be?fo
這篇文章主要介紹了解決@MapperScan和@Mapper共存之坑X(jué)xxMapper?that?could?not?be?found問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06
深入了解Java語(yǔ)言中的并發(fā)性選項(xiàng)有何不同
這篇文章主要介紹了深入了解Java語(yǔ)言中的并發(fā)性選項(xiàng)有何不同,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,,需要的朋友可以參考下2019-06-06
Spring Cloud Config實(shí)現(xiàn)分布式配置中心
這篇文章主要介紹了Spring Cloud Config實(shí)現(xiàn)分布式配置中心,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-04-04
python實(shí)戰(zhàn)之德州撲克第一步-發(fā)牌
這篇文章主要介紹了python實(shí)戰(zhàn)之德州撲克第一步-發(fā)牌,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下2021-04-04
IDEA(2022.2)搭建Servlet基本框架超詳細(xì)步驟
這篇文章主要給大家介紹了關(guān)于IDEA(2022.2)搭建Servlet基本框架超詳細(xì)步驟,Servlet容器負(fù)責(zé)Servlet和客戶的通信以及調(diào)用Servlet的方法,Servlet和客戶的通信采用"請(qǐng)求/響應(yīng)"的模式,需要的朋友可以參考下2023-10-10
SpringBoot項(xiàng)目使用slf4j的MDC日志打點(diǎn)功能(最新推薦)
這篇文章主要介紹了SpringBoot項(xiàng)目使用slf4j的MDC日志打點(diǎn)功能,本文通過(guò)示例代碼給大家介紹非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06

