当前位置: 首页 > news >正文

ABAP 将多层json逐层解析转成内表

文章目录

  • 需求
  • 代码-直接按照字段名去读取
  • 效果
  • 表类型与结构
    • 第一个表
    • 第二个表
    • 第三个表

需求

在这里插入图片描述

{"Success": true,"Message": null,"Result": [{"WorkOrderNo": "1000001360","ItemNo": "300000000020","ItemName": "H506-Y035*169.7/FZ10B/T6","WorkshopName": "西山挤型车间","ProcessInfos": [{"BatchNo": "","JyLot": "A250826DC10111003001","JyEquipment": "22","FurnaceNo": "DC101","ProcessName": "挤压、拉直、长料锯切","Qry": "10","MinDate": "2025-08-26 14:28","MaxDate": "2025-08-26 14:28"},{"BatchNo": "","JyLot": "A250826DC10111003001","JyEquipment": "1#","FurnaceNo": "","ProcessName": "时效","Qry": "10","MinDate": "2025-08-26 00:00","MaxDate": "2025-08-26 00:00"},{"BatchNo": "","JyLot": "A250826DC10111003001","JyEquipment": "","FurnaceNo": "","ProcessName": "成品锯切","Qry": "10","MinDate": "2025-08-26 14:51","MaxDate": "2025-08-26 14:51"},{"BatchNo": "2508290002","JyLot": "A250826DC10111003001","JyEquipment": "","FurnaceNo": "","ProcessName": "品检、包装","Qry": "10","MinDate": "2025-08-26 15:04","MaxDate": "2025-08-26 15:04"}],"TraceaIqcs": [{"BillNo": "QC2508260006","ShortRodFurnace": "DC101","BatchNo": "2508260001","CaberQry": "3","CaberUnit": "PCS","Result": "合格"}]}],"Context": {"Ticket": "2NkBhyzejjlQyNWTYA6k0ZzA8c5LKv81iq1V1zHEXoxKS6oOTP+/p+qI6Cwke02XiIMmrg67998=","InvOrgId": 1000}
}

在这里插入图片描述

代码-直接按照字段名去读取

在这里插入图片描述

FORM DESERIALIZE_JSON TABLES P_PRO_HEAD STRUCTURE ZRFS_001P_PRO_DETAIL STRUCTURE ZRFS_002P_LBLC STRUCTURE ZRFS_003USING P_JSON P_ZJYPC P_CHARGCHANGING LR_D TYPE REF TO DATA.FIELD-SYMBOLS: <FS_RESULT>       TYPE ANY,<FS_PRO_HEAD_T>   TYPE ANY,<FS_PRO_DETAIL_T> TYPE ANY,<FS_LBPC_T>       TYPE ANY,<FS_COMP>         TYPE ANY,<FS_DATA>         TYPE ANY.FIELD-SYMBOLS: <FS_PRO_HEAD>   TYPE ZRFS_001,<FS_PRO_DETAIL> TYPE ZRFS_002,<FS_LBPC>       TYPE ZRFS_003.DATA: LS_PRO_HEAD   TYPE ZRFS_001,LS_PRO_DETAIL TYPE ZRFS_002,LS_LBPC       TYPE ZRFS_003./UI2/CL_JSON=>DESERIALIZE(EXPORTINGJSON = P_JSONPRETTY_NAME  = /UI2/CL_JSON=>PRETTY_MODE-CAMEL_CASECHANGINGDATA  = LR_D)."解析数据IF LR_D IS BOUND.ASSIGN LR_D->* TO <FS_RESULT>.ASSIGN COMPONENT 'RESULT' OF STRUCTURE <FS_RESULT> TO <FS_RESULT>.ASSIGN <FS_RESULT>->* TO <FS_DATA>.LOOP AT <FS_DATA> ASSIGNING FIELD-SYMBOL(<FS_T>). "1、循环工单列表APPEND INITIAL LINE TO P_PRO_HEAD ASSIGNING <FS_PRO_HEAD>.ASSIGN <FS_T>->* TO <FS_COMP>.ASSIGN COMPONENT 'WORK_ORDER_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-AUFNR = <FS_PRO_HEAD_T>.ASSIGN COMPONENT 'ITEM_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-MATNR = <FS_PRO_HEAD_T>.ASSIGN COMPONENT 'ITEM_NAME' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-MAKTX = <FS_PRO_HEAD_T>.ASSIGN COMPONENT 'WORKSHOP_NAME' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-TXT_FEVOR = <FS_PRO_HEAD_T>.<FS_PRO_HEAD>-ZJYPC = P_ZJYPC.<FS_PRO_HEAD>-CHARG = P_CHARG."解析工序详细列表ASSIGN COMPONENT 'PROCESS_INFOS' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_DATA>.LOOP AT <FS_DATA> ASSIGNING FIELD-SYMBOL(<FS_TDEATIL>).APPEND INITIAL LINE TO P_PRO_DETAIL ASSIGNING <FS_PRO_DETAIL>.ASSIGN <FS_TDEATIL>->* TO <FS_COMP>. "一个有引用组件的结构MOVE-CORRESPONDING <FS_PRO_HEAD> TO <FS_PRO_DETAIL>.ASSIGN COMPONENT 'BATCH_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-BATCHNO = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'JY_LOT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-JYLOT = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'JY_EQUIPMENT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-JYEQUIPMENT = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'FURNACE_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-FURNACENO = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'QRY' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-QRY = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'MIN_DATE' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-MINDATE = <FS_PRO_DETAIL_T>.ASSIGN COMPONENT 'MAX_DATE' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_PRO_DETAIL_T>.<FS_PRO_DETAIL>-MAXDATE = <FS_PRO_DETAIL_T>.ENDLOOP."解析铝板炉次ASSIGN <FS_T>->* TO <FS_COMP>.ASSIGN COMPONENT 'TRACEA_IQCS' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_DATA>.LOOP AT <FS_DATA> ASSIGNING FIELD-SYMBOL(<FS_TLBLC>).APPEND INITIAL LINE TO P_LBLC ASSIGNING <FS_LBPC>.ASSIGN <FS_TLBLC>->* TO <FS_COMP>. "一个有引用组件的结构MOVE-CORRESPONDING <FS_PRO_HEAD> TO <FS_LBPC>.ASSIGN COMPONENT 'BILL_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-BILLNO = <FS_LBPC_T>.ASSIGN COMPONENT 'SHORT_ROD_FURNACE' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-SHORTRODFURNACE = <FS_LBPC_T>.ASSIGN COMPONENT 'BATCH_NO' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-BATCHNO = <FS_LBPC_T>.ASSIGN COMPONENT 'CABER_QRY' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-CABERQRY = <FS_LBPC_T>.ASSIGN COMPONENT 'CABER_UNIT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-CABERUNIT = <FS_LBPC_T>.ASSIGN COMPONENT 'RESULT' OF STRUCTURE <FS_COMP> TO <FS_DATA>.ASSIGN <FS_DATA>->* TO <FS_LBPC_T>.<FS_LBPC>-RESULT = <FS_LBPC_T>.ENDLOOP.ENDLOOP.ENDIF.ENDFORM.

效果

在这里插入图片描述

表类型与结构

在这里插入图片描述

第一个表

在这里插入图片描述

第二个表

在这里插入图片描述

第三个表

在这里插入图片描述


文章转载自:

http://5WpYHmb3.hxycm.cn
http://bigho4zc.hxycm.cn
http://pwNtVCCk.hxycm.cn
http://cyiFABQB.hxycm.cn
http://OcpBSl5Z.hxycm.cn
http://d6cHCSbo.hxycm.cn
http://Ka37ayf0.hxycm.cn
http://KVT5D0x5.hxycm.cn
http://NyVOyFip.hxycm.cn
http://xZ8W4wCT.hxycm.cn
http://bQ0SZJ9F.hxycm.cn
http://cuT9zUXa.hxycm.cn
http://JKbdgPWn.hxycm.cn
http://wT6iEcPH.hxycm.cn
http://RZSacsGN.hxycm.cn
http://U3EyMy8q.hxycm.cn
http://6583SQPE.hxycm.cn
http://SVCoEIac.hxycm.cn
http://jTA0IO2D.hxycm.cn
http://9wyW6bLy.hxycm.cn
http://OvzjSeoD.hxycm.cn
http://x2IVLIbI.hxycm.cn
http://DZP2tOTe.hxycm.cn
http://sj429kBG.hxycm.cn
http://qfBFr5Ii.hxycm.cn
http://3z3MQZgd.hxycm.cn
http://dkR4FMzw.hxycm.cn
http://9ZMTJFBR.hxycm.cn
http://SI6oMx6q.hxycm.cn
http://SrCXAC5Y.hxycm.cn
http://www.dtcms.com/a/378477.html

相关文章:

  • 一样的糖果
  • linux x86_64中打包qt
  • Windows 10 22H2 64位 【原版+优化版、版本号:19045.6332】
  • 学习日记-CSS-day53-9.11
  • 线程的创建.销毁
  • pg卡死处理
  • 装饰器模式在Spring中的案例
  • 【Springboot】介绍启动类和启动过程
  • 服务器内部信息获取
  • 软考 系统架构设计师系列知识点之杂项集萃(143)
  • BFD原理与配置
  • spring源码分析————ListableBeanFactory
  • InfoSecWarrior CTF 2020: 02靶场渗透
  • wikijs如何增加全文搜索的功能,增加对应的索引(Win11环境+docker+数据库elasticSearch)
  • 企业远程访问方案选择:何时选内网穿透,何时需要反向代理?
  • go中的singleflight是如何实现的?
  • 计算机毕业设计 基于Hadoop的南昌房价数据分析系统的设计与实现 Python 大数据毕业设计 Hadoop毕业设计选题【附源码+文档报告+安装调试
  • 在Cursor里安装极其好用的Mysql Database Client 插件
  • C# .NET EFCore 性能优化
  • STM32--时间戳,BKB,RTC
  • Spring Cloud Consul
  • 基于K210和STM32的小区门禁系统(论文+源码)
  • 区块链与分布式账本:重构数字世界的信任基石
  • Java 编程语言详解:从基础到高级应用
  • 在centOS源码编译方式安装MySQL5.7
  • STM32H750 QSPI介绍及应用
  • 【Luogu】P9809 [SHOI2006] 作业 Homework (根号算法)
  • Linux Node.js 安装及环境配置详细教程
  • Node.js介绍与安装
  • Node.js 版本管理全指南:卸载 Node、安装 NVM、常用命令及问题解决