javascript
abap数据类型转换_ABAP 中JSON格式的转换与解析
正文
RT,JSON是當今十分流行的一種輕量數(shù)據(jù)格式,廣泛地應用于各種數(shù)據(jù)交換場景中。本文會介紹一種比較簡單的將ABAP中的數(shù)據(jù)轉(zhuǎn)換為JSON格式的方法。
(如果你是因為引號的問題搜索到了這篇文章,請直接拉到底部“其它部分”)
序列化
使用cl_trex_json_serializer類來將結(jié)構(gòu)轉(zhuǎn)為JSON格式:
DATA:
serializer?TYPE?REF?TO?cl_trex_json_serializer,
lv_json?????TYPE?string.DATA:?BEGIN?OF?ls_kv,
key1??TYPE?string,
value?TYPE?string,??????END?OF?ls_kv.DATA:?lt_kv?LIKE?HASHED?TABLE?OF?ls_kv?WITH?UNIQUE?KEY?key1.
ls_kv-key1?=?'key'.
ls_kv-value?=?'值'.INSERT??ls_kv?INTO?TABLE?lt_kv.CREATE?OBJECT?serializer??EXPORTING
data?=?ls_kv.
serializer->serialize(?).
lv_json?=?serializer->get_data(?).WRITE?/?lv_json.
運行這段代碼,輸出結(jié)果,可以得到:
反序列化
使用cl_trex_json_deserializer來實現(xiàn)JSON的解析,代碼如下:
DATA:?deserializer?TYPE?REF?TO?cl_trex_json_deserializer.CLEAR?ls_kv.CREATE?OBJECT?deserializer.
deserializer->deserialize(????EXPORTING?json?=?lv_json????IMPORTING?abap?=?ls_kv??).WRITE:?/?ls_kv-key1,?/?,ls_kv-value.
運行程序,可以看到結(jié)果:
以上就是ABAP中轉(zhuǎn)換JSON數(shù)據(jù)的方法。當然,cl_trex_json_serializer與cl_trex_json_deserializer并不是唯一可以使用的類,SAP也為我們提供了CL_FDT_JSON, /UI2/CL_JSON等來進行JSON的序列化與反序列化,關(guān)于/UI2/CL_JSON它的更多信息,可以閱讀這篇文章:
其它
眼尖的讀者也許注意到,這兩個對象返回的的JSON是{key: "value"},而規(guī)范的JSON應該是{"key": "value"}的格式。如果使用它們來解析{"key": "value"}的話,會因為雙引號的問題導致出現(xiàn)異常,解析失敗。在這種情況下,推薦使用/UI2/CL_JSON:
/ui2/cl_json=>deserialize(?EXPORTING?json?=?json???????????????????????????CHANGING??data?=?data?).
總結(jié)
以上是生活随笔為你收集整理的abap数据类型转换_ABAP 中JSON格式的转换与解析的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python实现滑动窗口平均_数据流滑动
- 下一篇: python的原则_python 类的使