百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

Java将字符串解析为Json格式 java将字符串转换为json对象的方法

ztj100 2024-12-24 17:01 15 浏览 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"));

        } );

相关推荐

Sublime Text 4 稳定版 Build 4113 发布

IT之家7月18日消息知名编辑器SublimeText4近日发布了Build4113版本,是SublimeText4的第二个稳定版。IT之家了解到,SublimeTe...

【小白课程】openKylin便签贴的设计与实现

openKylin便签贴作为侧边栏的一个小插件,提供便捷的文本记录和灵活的页面展示。openKylin便签贴分为两个部分:便签列表...

“告别 Neovim!为什么我投奔了刚开源的 Zed 编辑器?”

...

壹啦罐罐 Android 手机里的 Xposed 都装了啥

这是少数派推出的系列专题,叫做「我的手机里都装了啥」。这个系列将邀请到不同的玩家,从他们各自的角度介绍手机中最爱的或是日常使用最频繁的App。文章将以「每周一篇」的频率更新,内容范围会包括iOS、...

电气自动化专业词汇中英文对照表(电气自动化专业英语单词)

专业词汇中英文对照表...

Python界面设计Tkinter模块的核心组件

我们使用一个模块,我们要熟悉这个模块的主要元件。如我们设计一个窗口,我们可以用Tk()来完成创建;一些交互元素,按钮、标签、编辑框用到控件;怎么去布局你的界面,我们可以用到pack()、grid()...

以色列发现“死海古卷”新残片(死海古卷是真的吗)

编译|陈家琦据艺术新闻网(artnews.com)报道,3月16日,以色列考古学家发现了死海古卷(DeadSeaScrolls)新残片。新出土的羊皮纸残片中包括以希腊文书写的《十二先知书》段落,这...

鸿蒙Next仓颉语言开发实战教程:订单列表

大家上午好,最近不断有友友反馈仓颉语言和ArkTs很像,所以要注意不要混淆。今天要分享的是仓颉语言开发商城应用的订单列表页。首先来分析一下这个页面,它分为三大部分,分别是导航栏、订单类型和订单列表部分...

哪些模块可以用在 Xposed for Lollipop 上?Xposed 模块兼容性解答

虽然已经有了XposedforLollipop的安装教程,但由于其还处在alpha阶段,一些Xposed模块能不能依赖其正常工作还未可知。为了解决大家对于模块兼容性的疑惑,笔者尽可能多...

利用 Fluid 自制 Mac 版 Overcast 应用

我喜爱收听播客,健身、上/下班途中,工作中,甚至是忙着做家务时。大多数情况下我会用MarcoArment开发的Overcast(Freemium)在iPhone上收听,这是我目前最喜爱的Po...

Avalonia日志组件实现与优化指南(ar日志表扣)

...

浅色Al云食堂APP代码(三)(手机云食堂)

以下是进一步优化完善后的浅色AI云食堂APP完整代码,新增了数据可视化、用户反馈、智能推荐等功能,并优化了代码结构和性能。项目结构...

实战PyQt5: 121-使用QImage实现一个看图应用

QImage简介QImage类提供了独立于硬件的图像表示形式,该图像表示形式可以直接访问像素数据,并且可以用作绘制设备。QImage是QPaintDevice子类,因此可以使用QPainter直接在图...

滚动条隐藏及美化(滚动条隐藏但是可以滚动)

1、滚动条隐藏背景/场景:在移动端,滑动的时候,会显示默认滚动条,如图1://隐藏代码:/*隐藏滚轮*/.ul-scrool-box::-webkit-scrollbar,.ul-scrool...

浅色AI云食堂APP完整代码(二)(ai 食堂)

以下是整合后的浅色AI云食堂APP完整代码,包含后端核心功能、前端界面以及优化增强功能。项目采用Django框架开发,支持库存管理、订单处理、财务管理等核心功能,并包含库存预警、数据导出、权限管理等增...

取消回复欢迎 发表评论: