ABAP Json解析案例

2024-05-24 04:28
文章标签 json 解析 案例 abap

本文主要是介绍ABAP Json解析案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

ABAP解析返回的JSON 案例

DATA:LTOKEN TYPE STRING.DATA: LL_LINES(10),"行数LL_TABIX(10),"循环标号LL_PECNT     TYPE P LENGTH 6 DECIMALS 2, "百分比LL_PECET(6),"百分数LL_TEXT(40)."消息CLEAR: LL_LINES,LL_TABIX,LL_PECNT,LL_PECET,LL_TEXT.*  CALL FUNCTION 'ZWMS_XHY_GET_TOKEN'
*    IMPORTING
*      LV_RESULT = LTOKEN.DATA: LEN            TYPE        I, "发送报文长度LEN_STRING     TYPE        STRING,URL            TYPE        STRING, "接口地址LV_URL         TYPE AGR_URL,LV_URL_STR     TYPE STRING,HTTP_CLIENT    TYPE REF TO IF_HTTP_CLIENT, "http客户端LV_SERVER_NAME TYPE ZE_SERVER_NAME,POST_STRING    TYPE        STRING,RESULT         TYPE        STRING,LTIMEEND       TYPE STRING, "时间戳结束LTIMEST        TYPE STRING. "时间戳开始LV_URL_STR = 'your URL '.CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URLEXPORTINGURL                = LV_URL_STRIMPORTINGCLIENT             = HTTP_CLIENTEXCEPTIONSARGUMENT_NOT_FOUND = 1PLUGIN_NOT_ACTIVE  = 2INTERNAL_ERROR     = 3OTHERS             = 4."设定传输请求内容格式以及编码格式HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' )."设置http method 为GetHTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).DATA:LVJSON TYPE STRING.DATA:L_UUID32 TYPE SYSUUID_C32,ILOGS    LIKE ZRFCLOGS OCCURS 0 WITH HEADER LINE.DATA:ITEM TYPE I. "行项目ITEM = 0.LVJSON = '{"SQL":"SELECT top 20 MATNR from ZVMARC "}'. //your  json  参数LEN = STRLEN( LVJSON ).ILOGS-CALPARMI =  LVJSON.CALL METHOD HTTP_CLIENT->REQUEST->SET_HEADER_FIELDEXPORTINGNAME  = '~request_method'VALUE = 'POST'."设置传入字符串CALL METHOD HTTP_CLIENT->REQUEST->SET_CDATAEXPORTINGDATA   = LVJSONOFFSET = 0LENGTH = LEN."发送CALL METHOD HTTP_CLIENT->SENDEXCEPTIONSHTTP_COMMUNICATION_FAILURE = 1HTTP_INVALID_STATE         = 2HTTP_PROCESSING_FAILED     = 3HTTP_INVALID_TIMEOUT       = 4OTHERS                     = 5."接收CALL METHOD HTTP_CLIENT->RECEIVEEXCEPTIONSHTTP_COMMUNICATION_FAILURE = 1HTTP_INVALID_STATE         = 2HTTP_PROCESSING_FAILED     = 3."提取返回字符串RESULT = HTTP_CLIENT->RESPONSE->GET_CDATA( ).DATA LS_CHAR TYPE C.LS_CHAR = CL_ABAP_CHAR_UTILITIES=>CR_LF.  " 获取换行符DATA: L_JSON_ROOT_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.DATA: L_ERRORTYPE_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.DATA: L_SAP_TEST_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.DATA: L_ERRORNO_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.DATA: L_SAP_TEST_ROW1_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.DATA: L_SAP_TEST_FUNC_ID_OBJECT TYPE REF TO ZCL_MDP_JSON_NODE.DATA: LTAR TYPE TABLE OF ZCL_MDP_JSON_NODE=>TYP_ARRAY_CHILDREN.L_JSON_ROOT_OBJECT = ZCL_MDP_JSON_NODE=>DESERIALIZE( JSON = RESULT ).DATA: L_STRING TYPE STRING.L_ERRORTYPE_OBJECT = L_JSON_ROOT_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'RESULT').LTAR  = L_ERRORTYPE_OBJECT->ARRAY_CHILDREN().LOOP AT LTAR INTO DATA(LSAR).L_SAP_TEST_OBJECT = LSAR-NODE.L_SAP_TEST_FUNC_ID_OBJECT  =  L_SAP_TEST_OBJECT->OBJECT_GET_CHILD_NODE( KEY = 'MATNR' ).WRITE :/ L_SAP_TEST_FUNC_ID_OBJECT->VALUE.ENDLOOP.WRITE:/ '123'.

这篇关于ABAP Json解析案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/997368

相关文章

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

全面解析Golang 中的 Gorilla CORS 中间件正确用法

《全面解析Golang中的GorillaCORS中间件正确用法》Golang中使用gorilla/mux路由器配合rs/cors中间件库可以优雅地解决这个问题,然而,很多人刚开始使用时会遇到配... 目录如何让 golang 中的 Gorilla CORS 中间件正确工作一、基础依赖二、错误用法(很多人一开

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Mysql中设计数据表的过程解析

《Mysql中设计数据表的过程解析》数据库约束通过NOTNULL、UNIQUE、DEFAULT、主键和外键等规则保障数据完整性,自动校验数据,减少人工错误,提升数据一致性和业务逻辑严谨性,本文介绍My... 目录1.引言2.NOT NULL——制定某列不可以存储NULL值2.UNIQUE——保证某一列的每一

深度解析Nginx日志分析与499状态码问题解决

《深度解析Nginx日志分析与499状态码问题解决》在Web服务器运维和性能优化过程中,Nginx日志是排查问题的重要依据,本文将围绕Nginx日志分析、499状态码的成因、排查方法及解决方案展开讨论... 目录前言1. Nginx日志基础1.1 Nginx日志存放位置1.2 Nginx日志格式2. 499

RabbitMQ消费端单线程与多线程案例讲解

《RabbitMQ消费端单线程与多线程案例讲解》文章解析RabbitMQ消费端单线程与多线程处理机制,说明concurrency控制消费者数量,max-concurrency控制最大线程数,prefe... 目录 一、基础概念详细解释:举个例子:✅ 单消费者 + 单线程消费❌ 单消费者 + 多线程消费❌ 多

MySQL CTE (Common Table Expressions)示例全解析

《MySQLCTE(CommonTableExpressions)示例全解析》MySQL8.0引入CTE,支持递归查询,可创建临时命名结果集,提升复杂查询的可读性与维护性,适用于层次结构数据处... 目录基本语法CTE 主要特点非递归 CTE简单 CTE 示例多 CTE 示例递归 CTE基本递归 CTE 结

详解MySQL中JSON数据类型用法及与传统JSON字符串对比

《详解MySQL中JSON数据类型用法及与传统JSON字符串对比》MySQL从5.7版本开始引入了JSON数据类型,专门用于存储JSON格式的数据,本文将为大家简单介绍一下MySQL中JSON数据类型... 目录前言基本用法jsON数据类型 vs 传统JSON字符串1. 存储方式2. 查询方式对比3. 索引

Spring Boot 3.x 中 WebClient 示例详解析

《SpringBoot3.x中WebClient示例详解析》SpringBoot3.x中WebClient是响应式HTTP客户端,替代RestTemplate,支持异步非阻塞请求,涵盖GET... 目录Spring Boot 3.x 中 WebClient 全面详解及示例1. WebClient 简介2.

在MySQL中实现冷热数据分离的方法及使用场景底层原理解析

《在MySQL中实现冷热数据分离的方法及使用场景底层原理解析》MySQL冷热数据分离通过分表/分区策略、数据归档和索引优化,将频繁访问的热数据与冷数据分开存储,提升查询效率并降低存储成本,适用于高并发... 目录实现冷热数据分离1. 分表策略2. 使用分区表3. 数据归档与迁移在mysql中实现冷热数据分