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. POJ 2976 Dropping test(01分数规划模板)

    01分数划分详情可阅读:http://www.cnblogs.com/perseawe/archive/2012/05/03/01fsgh.html 题意: 给出n个a和b,让选出n-k个使得最大 二 ...

  2. scrapy之自定制命令

    写好自己的爬虫项目之后,可以自己定制爬虫运行的命令. 一.单爬虫 在项目的根目录下新建一个py文件,如命名为start.py,写入如下代码: from scrapy.cmdline import ex ...

  3. 活动预告丨易盾CTO朱浩齐将出席2018 AIIA大会,分享《人工智能在内容安全的应用实践》

    本文来自网易云社区 对于很多人来讲,仿佛昨天才燃起来的人工智能之火,转眼间烧遍了各个角落,如今我们的生活中,处处渗透着人工智能.10月16日,2018年 AIIA人工智能开发者大会在苏州举办,网易云易 ...

  4. URAL 2040 Palindromes and Super Abilities 2

    Palindromes and Super Abilities 2Time Limit: 500MS Memory Limit: 102400KB 64bit IO Format: %I64d &am ...

  5. Linux使用Mutt发送邮件/附件

    使用Mutt发邮件极其方便,只需要一条命令即可发送或者批量发送邮件 功能说明:E-mail管理程序. 语 法:mutt [-hnpRvxz][-a<文件>][-b<地址>][- ...

  6. 【贪心】HDU 最少拦截系统

    https://vjudge.net/contest/68966#problem/I [题解] http://www.cnblogs.com/kuangbin/archive/2012/08/03/2 ...

  7. codeforces 315B

    #include<stdio.h> int main() { int n,k,i,flag=0; while(scanf("%d%d",&n,&k)!= ...

  8. 骑士精神 (codevs 2449)

    题目描述 Description 在一个5×5的棋盘上有12个白色的骑士和12个黑色的骑士, 且有一个空位.在任何时候一个骑士都能按照骑士的走法(它可以走到和它横坐标相差为1,纵坐标相差为2或者横坐标 ...

  9. iOS 用cornerstone 创建分支

    第一步:在cornerstone中添加服务器上的代码路径,如下: 第二步:选中服务器路径下的代码,选择“分支”按钮 第三步:开始创建分支 第四步:效果图如下 第五步:选择分支下的路径下载代码并进行修改 ...

  10. django学习之- CSRF及中间件

    CSRF # 表示django全局发送post请求均需要字符串验证功能:防止跨站请求伪造的功能工作原理:客户端访问服务器端,在服务器端正常返回给客户端数据的时候,而外返回给客户端一段字符串,等到客户端 ...