1

DATA: lv_em  TYPE string,
lv_em1 TYPE string.
DATA: lt_but021 TYPE TABLE OF but021,
lt_but0211 TYPE TABLE OF but021,
ls_but021 TYPE but021. "数据
lv_em = 'test' . ls_but021-partner = 'partner1' .
ls_but021-adr_kind = 'kind1' .
ls_but021-addrnumber = 'addr1' .
APPEND ls_but021 TO lt_but021 .
ls_but021-partner = 'partner2' .
ls_but021-adr_kind = 'kind2' .
ls_but021-addrnumber = 'addr2' .
APPEND ls_but021 TO lt_but021 . " abap 转json
DATA(json_writer) = cl_sxml_string_writer=>create( type = if_sxml=>co_xt_json ).
CALL TRANSFORMATION id
SOURCE content = lv_em
itable = lt_but021
RESULT XML json_writer.
DATA(json) = json_writer->get_output( ).
DATA: lv_json TYPE string .
CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING'
EXPORTING
im_xstring = json
im_encoding = 'UTF-8'
IMPORTING
ex_string = lv_json. " json 转 abap
CALL TRANSFORMATION id
SOURCE XML lv_json
RESULT content = lv_em1
itable = lt_but0211.

2

DATA lv_json TYPE string."定义JSON存放的变量
DATA lr_json_serializer TYPE REF TO cl_trex_json_serializer."解析JSON 用到的类(编译成JSON格式)
DATA lr_json_deserializer TYPE REF TO cl_trex_json_deserializer. "解析JSON 用到的类(解析JSON格式)
DATA: BEGIN OF wa_wl,
zzfld0000ht TYPE crmt_item_descr_partner,
zzfld0000hu TYPE crmt_prshtextx_db,
zzfld0000hv TYPE zdtel00002x,
zzfld0000hw TYPE zdtel000135,
zzfld0000hx TYPE zdtel0001d3,
zzfld0000i0 TYPE char10,
END OF wa_wl. "根据结构通过这个类可以转换成JSON格式
CREATE OBJECT lr_json_serializer
EXPORTING
data = wa_wl.
lr_json_serializer->serialize( ).
lv_json = lr_json_serializer->get_data( ).
"OA 需要用双引号才能识别是JSON格式这里需要转换下
REPLACE 'zzfld0000i0'IN lv_json WITH '"ZCBZ"'.
REPLACE 'zzfld0000ht'IN lv_json WITH '"WLBM"'.
REPLACE 'zzfld0000hu'IN lv_json WITH '"WLMC"'.
REPLACE 'zzfld0000hw'IN lv_json WITH '"WLDJ"'.
REPLACE 'zzfld0000hv'IN lv_json WITH '"WLSL"'.
REPLACE 'zzfld0000hx'IN lv_json WITH '"HJ"'.
IF i_num > .
CONCATENATE str1 ',' INTO str1.
ENDIF.
CONCATENATE str1 lv_json INTO str1.
IF str1 IS NOT INITIAL.
CONCATENATE '[' str1 ']' INTO str1.
CONDENSE str1 NO-GAPS.
set_fieldcat 'RTFTEXTDYNAMIC' str1.
ENDIF.

ABAP 中内表数据转JSON 格式,转之后格式需要调整。

文章转自 http://blog.chinaunix.net/uid-29195436-id-5146433.html

ABAP JSON的更多相关文章

  1. ABAP JSON转换

    REPORT ztest_json. DATA: json_ser TYPE REF TO cl_trex_json_serializer, json_des TYPE REF TO zcl_trex ...

  2. ABAP开源项目清单

    因为曾经的“SAP Code Exchange”平台已经于2013年倒闭,现在无论在SCN还是网络上都比较难找到一个地方来关注全部的优秀ABAP开源项目. 本文将这些项目的地址和他们的描述列出,以供参 ...

  3. ABAP 内表数据 与 Json串 相互转换

    内表: A B C IMINGZHA  HAIMINGZ AIMINGZH 1 2 3 4 5 6 Json串:  [{a: "IMINGZHA", b: "HAIMIN ...

  4. ABAP接口之Http发送json报文

    abap 调用http 发送 json 测试函数 SE11创建结构:zsmlscpnotice SE37创建函数:zqb_test_http_fuc1 FUNCTION zqb_test_http_f ...

  5. ABAP 中JSON格式的转换与解析

    RT,JSON是当今十分流行的一种轻量数据格式,广泛地应用于各种数据交换场景中.本文会介绍一种比较简单的将ABAP中的数据转换为JSON格式的方法. (如果你是因为引号的问题搜索到了这篇文章,请直接拉 ...

  6. ABAP内表数据和JSON格式互转

    本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...

  7. 如何使用ABAP代码反序列化JSON字符串成ABAP结构

    假设我有这个JSON字符串如下图所示: 我的任务是解析出上图黑色方框里的几个字段,比如ObjectID, ETag, BuyerID, DateTime, ID, Name等等,把它们的值存储到对应A ...

  8. JSON2ABAPType:根据JSON数据结构生成ABAP类型定义

    一图表明本文将要介绍的工具: JSON是常见的数据格式,经常用于接口开发.ABAP开发者通常使用/ui2/cl_json来把JSON数据转换为相应的ABAP类型. 在转换前,必须要定义相应的ABAP类 ...

  9. 关于ABAP和JSON互相转换

    关于ABAP数据结构和JSON格式转换,需要用到标准的类/UI2/CL_JSON一下两个方法, DESERIALIZE是把JSON格式转换成ABAP数据结构,SERIALIZE是把ABAP数据结构转换 ...

随机推荐

  1. pwntools使用简介3

    连接 本地process().远程remote().对于remote函数可以接url并且指定端口. IO模块 下面给出了PwnTools中的主要IO函数.这个比较容易跟zio搞混,记住zio是read ...

  2. mysql语句查询:查询距离某个日期10天的数据

    select * from table  where state = '1' and DATE_SUB(CURDATE(), INTERVAL 10 DAY) <= begin_time

  3. nginx.conf的完整配置说明

    #用户 用户组 user www www; #工作进程,根据硬件调整,有人说几核cpu,就配几个,我觉得可以多一点 worker_processes 5: #错误日志 error_log logs/e ...

  4. zoj 2818 Root of the Problem

    Root of the Problem Time Limit: 2 Seconds      Memory Limit: 65536 KB Given positive integers B and ...

  5. CodeForces 610B-Vika and Squares,有坑点,不是很难~~

    B. Vika and Squares time limit per test 2 seconds memory limit per test 256 megabytes input standard ...

  6. codeforces #299 div 2

    (总算是5题都做完了- -) 暂时做了4题,先放一下有时间做最后一题(当然如果我真的能做出的话...)(看了大神的代码总算是理解了E题,做完发现也没那么难,果然想出一个思路的过程对于我这种弱渣来说还是 ...

  7. gridview读取Excel文件中的数据,并将其导入数据库

    原文发布时间为:2008-10-16 -- 来源于本人的百度文章 [由搬家工具导入] //将需要导入的文件上传到服务器           string filePath = "" ...

  8. hdu 1728 逃离迷宫 [ dfs ]

    传送门 逃离迷宫 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Su ...

  9. 用WCF服务来动态的获取本地XML省市区文档

    建立一个WCF服务. using ClassLibrary; using System; using System.Collections.Generic; using System.Linq; us ...

  10. maven的超级pom

    对于 Maven3,超级 POM 在文件 %MAVEN_HOME%/lib/maven-model-builder-x.x.x.jar 中的 org/apache/maven/model/pom-4. ...