Java将字符串解析为Json格式 java将字符串转换为json对象的方法
ztj100 2024-12-24 17:01 21 浏览 0 评论
解析json字符串格式如下
"[[{"Result":{"ResponseStatus":{"ErrorCode":500,"IsSuccess":false,"Errors":[{"FieldName":null,"Message":"名称为“生产管理”的模块/子系统未购买","DIndex":0}],"SuccessEntitys":[],"SuccessMessages":[],"MsgCode":7}}}]]";
String cookie = login();
String result = ExecuteBillQuery(cookie);
System.out.println(result);
String[][] parse11 = JSON.parseObject(result, String[][].class);
List<List<String>> lists11 = JSON.parseObject(JSON.toJSONString(parse11),new TypeReference<List<List<String>>>() {});
System.out.println("lists11");
lists11.forEach(i-> {
System.out.println(i);
System.out.println(i.get(0));
String result0 = i.get(0);
JSONObject jsonObject = JSON.parseObject(result0);
System.out.println("jsonObject");
System.out.println(jsonObject);
JSONObject result2 = (JSONObject) jsonObject.get("Result");
JSONObject result3 = (JSONObject) result2.get("ResponseStatus");
System.out.println("result3");
System.out.println(result3);
//遍历key和value
for (Map.Entry<String, Object> entry : result3.entrySet()) {
System.out.println("这条JSON的Key是:"+entry.getKey()+"这条JSON的Value是:"+ entry.getValue());
if ("Errors".equals(entry.getKey()))
{
JSONArray error = (JSONArray) entry.getValue();
JSONObject message = JSON.parseObject(error.getString(0));
System.out.println(message.get("Message"));
}
}
});
解析字符串数组如下
String str2="[[\"MO10003000080\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-21T00:00:00\",\"C\",\"1\",115084,\"WR705(规格:JDF)\",0,100080,10095,753.0000000000,\"7\",0,\"1\"],[\"MO10003000012\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",115098,\"WR7168(规格:F2)\",0,100080,10095,125.0000000000,\"7\",0,\"1\"],[\"MO10003000080\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-21T00:00:00\",\"C\",\"1\",115169,\"WR7501PB(规格:7)\",0,100080,10095,6.5000000000,\"7\",0,\"1\"],[\"MO10003000013\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",115203,\"WR7501PB(规格:1Y )\",0,100080,10095,10.0000000000,\"7\",0,\"1\"],[\"MO10003000029\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-16T00:00:00\",\"C\",\"1\",115205,\"WR7399 A(规格:D3)\",0,100080,10095,82.0000000000,\"7\",0,\"1\"],[\"MO10003000153\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-23T00:00:00\",\"C\",\"1\",115205,\"WR7399 A(规格:D3)\",0,100080,10095,193.0000000000,\"7\",0,\"1\"],[\"MO10003000031\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-16T00:00:00\",\"C\",\"1\",115226,\"WR7399B(规格:D5L)\",0,100080,10095,99.0000000000,\"7\",0,\"1\"],[\"MO10003000383\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-30T00:00:00\",\"C\",\"1\",115380,\"WR7501(规格:T7)\",0,100080,10095,20.8800000000,\"7\",223760,\"1\"],[\"MO10001000076\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-26T00:00:00\",\"C\",\"1\",122393,\"WH-3100-J\",0,100078,10095,369.0000000000,\"7\",221598,\"1\"],[\"MO10001000076\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-26T00:00:00\",\"C\",\"1\",122438,\"WH-1100-J-126\",0,100078,10095,420.0000000000,\"7\",221190,\"1\"],[\"MO10001000076\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-26T00:00:00\",\"C\",\"1\",122450,\"WH-3100-JZH\",0,100078,10095,316.0000000000,\"7\",221199,\"1\"],[\"MO10001000092\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-27T00:00:00\",\"C\",\"1\",122511,\"WH-3100-J\",0,100078,10095,100.0000000000,\"7\",221586,\"1\"],[\"MO10002000078\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-10T00:00:00\",\"C\",\"1\",124123,\"7101-09T-10\",0,100079,10095,15.0000000000,\"7\",0,\"1\"],[\"MO10003000010\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",193574,\"903-1000-M\",0,100080,10095,885.0000000000,\"7\",209209,\"1\"],[\"MO10003000011\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",198700,\"WR7306A(规格:YC-RH)\",0,100080,10095,30.0000000000,\"7\",0,\"1\"],[\"MO10003000011\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",198703,\"WR7306B(规格:YC-RH)\",0,100080,10095,30.0000000000,\"7\",209211,\"1\"],[\"MO10002000083\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-11T00:00:00\",\"C\",\"1\",199617,\"R-15T\",0,100079,10095,10.0000000000,\"7\",0,\"1\"],[\"MO10003000007\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",206101,\"WR7306A(规格:9107L)\",0,100080,10095,180.0000000000,\"7\",0,\"1\"],[\"MO10003000007\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-15T00:00:00\",\"C\",\"1\",206105,\"WR7306B(规格:9107L)\",0,100080,10095,370.0000000000,\"7\",209192,\"1\"],[\"MO10003000030\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-16T00:00:00\",\"C\",\"1\",207920,\"WR7399A规格:D3(高速分散基料)\",0,100080,10095,78.0000000000,\"7\",213449,\"1\"],[\"MO10001000076\",\"123f39178eb2424c8449f992e1fff1ee\",\"2020-09-26T00:00:00\",\"C\",\"1\",216829,\"WH-G310-1A\",0,100078,10095,395.0000000000,\"7\",221203,\"1\"]]";
/**
* 如果建立了对应的实体类 可以不需要下面的集合装请求的字段
* 此处是测试请求的数据 所以没有建立最终的实体类
*/
List<String> key=new ArrayList<String>(){
{
this.add("FBillNo");
this.add("FBillType");
this.add("FDate");
this.add("FDocumentStatus");
this.add("FProductType");
this.add("FMaterialId");
this.add("FMaterialName");
this.add("FWorkShopID0");
this.add("FPrdOrgId");
this.add("FUnitId");
this.add("FQty");
this.add("FStatus");
this.add("FLot");
this.add("FPickMtrlStatus");
}
};
/**
* 数据处理
*
* ==============================================================
* 获取到的数据 是 String[][]形式的字符串 经过转换之后变成集合
* [
* [MO10003000080, 123f39178eb2424c8449f992e1fff1ee, 2020-09-21T00:00:00, C, 1, 115084, WR705(规格:JDF), 0, 100080, 10095, 753.0000000000, 7, 0, 1],
* [MO10003000012, 123f39178eb2424c8449f992e1fff1ee, 2020-09-15T00:00:00, C, 1, 115098, WR7168(规格:F2), 0, 100080, 10095, 125.0000000000, 7, 0, 1],
* [MO10003000080, 123f39178eb2424c8449f992e1fff1ee, 2020-09-21T00:00:00, C, 1, 115169, WR7501PB(规格:7), 0, 100080, 10095, 6.5000000000, 7, 0, 1],
* [MO10003000013, 123f39178eb2424c8449f992e1fff1ee, 2020-09-15T00:00:00, C, 1, 115203, WR7501PB(规格:1Y ), 0, 100080, 10095, 10.0000000000, 7, 0, 1],
* [MO10003000029, 123f39178eb2424c8449f992e1fff1ee, 2020-09-16T00:00:00, C, 1, 115205, WR7399 A(规格:D3), 0, 100080, 10095, 82.0000000000, 7, 0, 1],
* [MO10003000153, 123f39178eb2424c8449f992e1fff1ee, 2020-09-23T00:00:00, C, 1, 115205, WR7399 A(规格:D3), 0, 100080, 10095, 193.0000000000, 7, 0, 1],
* [MO10003000031, 123f39178eb2424c8449f992e1fff1ee, 2020-09-16T00:00:00, C, 1, 115226, WR7399B(规格:D5L), 0, 100080, 10095, 99.0000000000, 7, 0, 1],
* [MO10003000383, 123f39178eb2424c8449f992e1fff1ee, 2020-09-30T00:00:00, C, 1, 115380, WR7501(规格:T7), 0, 100080, 10095, 20.8800000000, 7, 223760, 1],
* [MO10001000076, 123f39178eb2424c8449f992e1fff1ee, 2020-09-26T00:00:00, C, 1, 216829, WH-G310-1A, 0, 100078, 10095, 395.0000000000, 7, 221203, 1]
* ]
*/
String[][] parse1 = JSON.parseObject(str2, String[][].class);
List<List<String>> lists1 = JSON.parseObject(JSON.toJSONString(parse1),new TypeReference<List<List<String>>>() {});
System.out.println("lists1");
lists1.forEach(i-> System.out.println(i));
System.out.println("----");
List<Map<String,Object>>listMap=new ArrayList<>();
/**
* 此处遍历数据进行处理 以下面形式展现
*
* [
* {
*
* "FBillNo": "MO10003000080",
* "FBillType": "123f39178eb2424c8449f992e1fff1ee",
* "FDate": "2020-09-21T00:00:00",
* "FDocumentStatus": "C",
* "FLot": "0",
* "FMaterialId": "115084",
* "FMaterialName": "WR705(规格:JDF)",
* "FPickMtrlStatus": "1",
* "FPrdOrgId": "100080",
* "FProductType": "1",
* "FQty": "753.0000000000",
* "FStatus": "7",
* "FUnitId": "10095",
* "FWorkShopID0": "0"
* },
* {
* "FBillNo": "MO10001000076",
* "FBillType": "123f39178eb2424c8449f992e1fff1ee",
* "FDate": "2020-09-26T00:00:00",
* "FDocumentStatus": "C",
* "FLot": "221203",
* "FMaterialId": "216829",
* "FMaterialName": "WH-G310-1A",
* "FPickMtrlStatus": "1",
* "FPrdOrgId": "100078",
* "FProductType": "1",
* "FQty": "395.0000000000",
* "FStatus": "7",
* "FUnitId": "10095",
* "FWorkShopID0": "0"
* },........
* ]
*
*
*/
lists1.forEach(list->{
//为了和请求时候传递过去的字段的顺序一样 所以这里需要用有序的Map
Map<String,Object>map=new LinkedHashMap<>();
ForEachUtils.forEach(0, list, (index, item) -> {
map.put( key.get(index),list.get(index));
});
listMap.add(map);
});
/**
*转换过后的数据以Json输出
*/
listMap.forEach(item->{
System.out.println(item);
System.out.println(item.get("FBillNo"));
} );
相关推荐
- sharding-jdbc实现`分库分表`与`读写分离`
-
一、前言本文将基于以下环境整合...
- 三分钟了解mysql中主键、外键、非空、唯一、默认约束是什么
-
在数据库中,数据表是数据库中最重要、最基本的操作对象,是数据存储的基本单位。数据表被定义为列的集合,数据在表中是按照行和列的格式来存储的。每一行代表一条唯一的记录,每一列代表记录中的一个域。...
- MySQL8行级锁_mysql如何加行级锁
-
MySQL8行级锁版本:8.0.34基本概念...
- mysql使用小技巧_mysql使用入门
-
1、MySQL中有许多很实用的函数,好好利用它们可以省去很多时间:group_concat()将取到的值用逗号连接,可以这么用:selectgroup_concat(distinctid)fr...
- MySQL/MariaDB中如何支持全部的Unicode?
-
永远不要在MySQL中使用utf8,并且始终使用utf8mb4。utf8mb4介绍MySQL/MariaDB中,utf8字符集并不是对Unicode的真正实现,即不是真正的UTF-8编码,因...
- 聊聊 MySQL Server 可执行注释,你懂了吗?
-
前言MySQLServer当前支持如下3种注释风格:...
- MySQL系列-源码编译安装(v5.7.34)
-
一、系统环境要求...
- MySQL的锁就锁住我啦!与腾讯大佬的技术交谈,是我小看它了
-
对酒当歌,人生几何!朝朝暮暮,唯有己脱。苦苦寻觅找工作之间,殊不知今日之事乃我心之痛,难道是我不配拥有工作嘛。自面试后他所谓的等待都过去一段时日,可惜在下京东上的小金库都要见低啦。每每想到不由心中一...
- MySQL字符问题_mysql中字符串的位置
-
中文写入乱码问题:我输入的中文编码是urf8的,建的库是urf8的,但是插入mysql总是乱码,一堆"???????????????????????"我用的是ibatis,终于找到原因了,我是这么解决...
- 深圳尚学堂:mysql基本sql语句大全(三)
-
数据开发-经典1.按姓氏笔画排序:Select*FromTableNameOrderByCustomerNameCollateChinese_PRC_Stroke_ci_as//从少...
- MySQL进行行级锁的?一会next-key锁,一会间隙锁,一会记录锁?
-
大家好,是不是很多人都对MySQL加行级锁的规则搞的迷迷糊糊,一会是next-key锁,一会是间隙锁,一会又是记录锁。坦白说,确实还挺复杂的,但是好在我找点了点规律,也知道如何如何用命令分析加...
- 一文讲清怎么利用Python Django实现Excel数据表的导入导出功能
-
摘要:Python作为一门简单易学且功能强大的编程语言,广受程序员、数据分析师和AI工程师的青睐。本文系统讲解了如何使用Python的Django框架结合openpyxl库实现Excel...
- 用DataX实现两个MySQL实例间的数据同步
-
DataXDataX使用Java实现。如果可以实现数据库实例之间准实时的...
- MySQL数据库知识_mysql数据库基础知识
-
MySQL是一种关系型数据库管理系统;那废话不多说,直接上自己以前学习整理文档:查看数据库命令:(1).查看存储过程状态:showprocedurestatus;(2).显示系统变量:show...
- 如何为MySQL中的JSON字段设置索引
-
背景MySQL在2015年中发布的5.7.8版本中首次引入了JSON数据类型。自此,它成了一种逃离严格列定义的方式,可以存储各种形状和大小的JSON文档,例如审计日志、配置信息、第三方数据包、用户自定...
你 发表评论:
欢迎- 一周热门
-
-
MySQL中这14个小玩意,让人眼前一亮!
-
旗舰机新标杆 OPPO Find X2系列正式发布 售价5499元起
-
【VueTorrent】一款吊炸天的qBittorrent主题,人人都可用
-
面试官:使用int类型做加减操作,是线程安全吗
-
C++编程知识:ToString()字符串转换你用正确了吗?
-
【Spring Boot】WebSocket 的 6 种集成方式
-
PyTorch 深度学习实战(26):多目标强化学习Multi-Objective RL
-
pytorch中的 scatter_()函数使用和详解
-
与 Java 17 相比,Java 21 究竟有多快?
-
基于TensorRT_LLM的大模型推理加速与OpenAI兼容服务优化
-
- 最近发表
- 标签列表
-
- idea eval reset (50)
- vue dispatch (70)
- update canceled (42)
- order by asc (53)
- spring gateway (67)
- 简单代码编程 贪吃蛇 (40)
- transforms.resize (33)
- redisson trylock (35)
- 卸载node (35)
- np.reshape (33)
- torch.arange (34)
- npm 源 (35)
- vue3 deep (35)
- win10 ssh (35)
- vue foreach (34)
- idea设置编码为utf8 (35)
- vue 数组添加元素 (34)
- std find (34)
- tablefield注解用途 (35)
- python str转json (34)
- java websocket客户端 (34)
- tensor.view (34)
- java jackson (34)
- vmware17pro最新密钥 (34)
- mysql单表最大数据量 (35)