【Java】提取JSON数值时遇到数组集合时使用的K-V方式转换
1.实体类转换方法
参照文章:http://www.cnblogs.com/dflmg/p/6933811.html
2.K-V方法(此方法比较笨,但是没有办法,我现在不知道有没有相关的简单API,只能自己手动拼出一个方法。import org.apache.commons.lang.StringUtils;)
String s = "{'request': {'enterpriseid': 55,'ownerCode': 'SunEee01','item': [{'itemName': '1熊孩子新疆无花果成品268g','itemType': 'ZC','barCode': '6924459400256','shelfLife ': 0, 'itemCode': 'xhzwhggcp_268'},
{'itemName': '2好孩子新疆无花果成品268g','itemType': 'ZC','barCode': '6924459400256','shelfLife ': 1, 'itemCode': 'xhzwhggcp_268'}]}}";
//String s = "{'request': {'enterpriseid': 55,'ownerCode': 'SunEee01','item': [{'itemName': '好孩子新疆无花果成品268g','itemType': 'ZC','barCode': '6924459400256','shelfLife ': 1, 'itemCode': 'xhzwhggcp_268'}]}}";
JSONObject jsonObject = JSONObject.fromObject(s);
//System.out.println(jsonObject);
String request = jsonObject.getString("request");
//System.out.println(request);
JSONObject vendorDO = JSONObject.fromObject(request);
//System.out.println(vendorDO);
String ent = vendorDO.getString("item");
//对象实体类的方法System.out.println(ent);
/*JSONArray ents = vendorDO.getJSONArray("item");
List<Item> ss = (List<Item>)JSONArray.toList(ents,Item.class);
for(Item x:ss){
//如果item里面还有List对象作为属性就使用1的方法,参见http://www.cnblogs.com/dflmg/p/6933811.html
System.out.println(x.getItemName());
}*/
String[] many = ent.split("\\},\\{");
if(many.length==1){
String one = many[0].substring(1,ent.length()-1);
JSONObject joss = JSONObject.fromObject(one);
String itemName = joss.getString("itemName");
System.out.println(itemName);
}else{
for(int i=0;i<many.length;i++){
if(i==0){
String frist = many[i].substring(1)+"}";
JSONObject joss = JSONObject.fromObject(frist);
String itemName = joss.getString("itemName");
System.out.println(itemName);
}else if(i==many.length-1){
String middle = "{"+StringUtils.substringBefore(many[i], "]");
JSONObject joss = JSONObject.fromObject(middle);
String itemName = joss.getString("itemName");
System.out.println(itemName);
}else{
String last = "{"+many[i]+"}";
JSONObject joss = JSONObject.fromObject(last);
String itemName = joss.getString("itemName");
System.out.println(itemName);
}
}}
【Java】提取JSON数值时遇到数组集合时使用的K-V方式转换的更多相关文章
- 泛型集合List<T> Dictionary<K,V>
List<T>类似于ArrayList,ArrayList的升级版. 各种方法:Sort().Max().Min().Sum()… Dictionary<K,V>类似于Ha ...
- C# json对象中包含数组对象时,如何存入数据库
前端创建的的对象例如: C#端这样将数组提取出来存入
- Java源码 HashMap<K,V>
HashMap类 https://docs.oracle.com/javase/8/docs/api/java/util/HashMap.html public class HashMap<K, ...
- 数组中累加和为k的最大子数组的长度
package com.hzins.suanfa; import java.util.HashMap; public class demo { /** * 数组中累加和为k的最大子数组的长度 * @p ...
- PHP 二维数组根据某个字段按指定排序方式排序
/** * 二维数组根据某个字段按指定排序方式排序 * @param $arr array 二维数组 * @param $field string 指定字段 * @param int $sort_or ...
- Java技巧——将前端的对象数组通过Json字符串传到后端并转换为对象集合
Java技巧——将前端的对象数组通过Json字符串传到后端并转换为对象集合 摘要:本文主要记录了如何将将前端的对象数组通过Json字符串传到后端,并在后端将Json字符串转换为对象集合. 前端代码 前 ...
- 黑马程序员——JAVA基础之Collections和Arrays,数组集合的转换
------- android培训.java培训.期待与您交流! ---------- 集合框架的工具类: Collections : 集合框架的工具类.里面定义的都是静态方法. Col ...
- Java:Json与其他Java对象集合的转换
一.引入的jar包 json-lib-2.4-jdk15.jar 二.Json字符串转换为其他对象 1.对象==>json字符串 2.list和Map集合==>json字符串 3.Map集 ...
- java数组集合元素的查找
java数组和集合的元素查找类似,下面以集合为例. 数组集合元素查找分为两类: 基本查找: 二分折半查找: 基本查找: 两种方式都是for循环来判断,一种通过索引值来判断,一种通过数组索引判断. 索引 ...
随机推荐
- python中while循环和for循环的定义和详细的使用方法
1. 循环的定义,反复做某事,具有明确的开始和结束. 2. 在Python中循环有while和for两种方式: While循环:1) 语法结构 >>> while 条件: ... ...
- python的变量的命名规则以及定义
1.变量,指计算机中存储数据的空间 2.变量的命名方式:变量名 = 值 3.变量的命名规定(标识符的命名规定): 只能由数字,字母,下划线组成(可以用中文但是不推荐) 不能以数字开头 不能与关键词重名 ...
- Linux下的消息队列
文章链接:https://blog.csdn.net/qq_38646470/article/details/80169406
- 我的Cocos Creator成长之路1环境搭建以及基本的文档阅读
本人原来一直是做cocos-js和cocos-lua的,应公司发展需要,现转型为creator.会在自己的博客上记录自己的成长之路. 1.文档阅读:(cocos的官方文档) http://docs.c ...
- RabbitMQ入门:路由(Routing)
在上一篇博客<RabbitMQ入门:发布/订阅(Publish/Subscribe)>中,我们认识了fanout类型的exchange,它是一种通过广播方式发送消息的路由器,所有和exch ...
- 006 --MySQL索引原理
一 .索引的概念? 一般的应用系统,读写比例在10:1左右,而且插入操作和一般的更新操作很少出现性能问题,在生产环境中,我们遇到最多的,也是最容易出问题的,还是一些复杂的查询操作,因此对查询语句的优化 ...
- 前端开发利器 livereload -- 从此告别浏览器F5键
各位从事前端开发的童鞋们,大家每天coding && coding,然后F5 && F5,今天推荐一个静态文件在浏览器中自动更新的扩展 livereload,不同手动刷 ...
- CUDA、CUDNN在Mac Book Pro上安装的问题
由于原版MacOS自带Nvidia驱动版本过低,导致最新版本CUDA安装后无法运行.具体症状为:在编译时一切正常,在运行CUDA相关程序时报错: CUDA driver version is insu ...
- teamwork 2
1.访问上学期项目团队,学习他们的得失. 上学期学长们有一个项目是学霸系统,在看过了学长们的相关博客后,我们可以感受到学长们确实花费了不少心思,也看到了许多值得我们学习的地方. 首先,学长们在项目开始 ...
- 20135234mqy-——信息安全系统设计基础第六周学习总结
处理器体系结构 4.1 Y86指令集体系结构 4.1.1程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态. 4.1.2 Y86指令 4个指令:irmovl, ...