Java 从json提取数组并转换为list的操作方法
Java 从json提取数组并转换为list
这里ret表示json字符串原文
// 解析为JSONObject
JSONObject jsonObject = JSONObject.parseObject(ret);
// 提取出JSONArray
JSONArray jsonArray = new JSONArray(jsonObject.getJSONObject("result").getJSONArray("org_list"));
// 将JSONArray转为List列表
String str = JSONObject.toJSONString(jsonArray);
List<Org> list = JSONObject.parseArray(str, Org.class);使用getJSONArray()获取到jsonarray后,再将jsonArray转换为字符串,最后将字符串解析为List列表。
代码中的Org是我List列表中元素的类型。
Java单个对象和List对象转换成Json,Json转List
(一)使用单个对象转换JSON对象
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(){//测试转换成Json,单个对象
VoucherInfo vo1=new VoucherInfo();
vo1.setVoucherValue(2131);vo1.setVoucherCode("小可爱的");
JSONObject updateJsonObj = JSONObject.fromObject(vo1);//转换成json格式
logger.info("---转换成json格式:---"+updateJsonObj.toString());//提取access_token节点数据
}
}输出转换后日志:

17-10-2018 17:35 INFO TestPut:35 - ---转换成json格式:---{"labourCost":0,"refMetalPrice":0,"voucherCoNumber":"","voucherCode":"小可爱的","voucherType":"","voucherValue":2131,"weight":0,"weightUnit":""}
(二)多个对象存到List,再转换成JSON
@Test
public void getArrayList(){//测试转换成Json,List转换成JSONList
List<VoucherInfo> vouchersList=new ArrayList<VoucherInfo>();
VoucherInfo vo1=new VoucherInfo();
VoucherInfo vo2=new VoucherInfo();
vo1.setVoucherValue(2131);vo1.setVoucherCode("小可爱的");
vo2.setVoucherValue(100);vo2.setVoucherCode("小可爱的222");
vouchersList.add(vo1);vouchersList.add(vo2);
JSONArray jsonArray = JSONArray.fromObject(vouchersList);
logger.info("--获取到转换为json格式的内容:"+jsonArray.toString());//提取access_token节点数据
}输出日志:

17-10-2018 17:36 INFO TestPut:47 - --获取到转换为json格式的内容:[{"labourCost":0,"refMetalPrice":0,"voucherCoNumber":"","voucherCode":"小可爱的","voucherType":"","voucherValue":2131,"weight":0,"weightUnit":""},{"labourCost":0,"refMetalPrice":0,"voucherCoNumber":"","voucherCode":"小可爱的222","voucherType":"","voucherValue":100,"weight":0,"weightUnit":""}]
(三)json的list对象转List对象
先转jsonArray,再转object提取数据
@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);
//循环获取json数组中的 json 对象,然后转换为 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);
}到此这篇关于Java 从json提取出数组并转换为list的文章就介绍到这了,更多相关java json提取数组转换为list内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
Springboot3利用redis生成唯一订单号的实现示例
本文主要介绍了Springboot3利用redis生成唯一订单号的实现示例,包括UUID、雪花算法和数据库约束,具有一定的参考价值,感兴趣的可以了解一下2025-03-03
解决@MapperScan和@Mapper共存之坑XxxMapper that could not be fo
这篇文章主要介绍了解决@MapperScan和@Mapper共存之坑XxxMapper that could not be found问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2024-06-06
IDEA(2022.2)搭建Servlet基本框架超详细步骤
这篇文章主要给大家介绍了关于IDEA(2022.2)搭建Servlet基本框架超详细步骤,Servlet容器负责Servlet和客户的通信以及调用Servlet的方法,Servlet和客户的通信采用"请求/响应"的模式,需要的朋友可以参考下2023-10-10
SpringBoot项目使用slf4j的MDC日志打点功能(最新推荐)
这篇文章主要介绍了SpringBoot项目使用slf4j的MDC日志打点功能,本文通过示例代码给大家介绍非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2023-06-06


最新评论