需求:通过PO与SRM系统进行联调时,发现SRM给我传来一个字符串,经过各位老师的帮忙,参考陆ht顾问的例子,我成功解决。 JSON转换为ABAP内表有两种方法。 方法一:
代码语言:javascript复制*json解析定义
types:begin of ty_data,
preis type string,
bnfpo type string,
end of ty_data.
data: lt_json type table of ty_data .
data: json_string type string.
data: deserializer type ref to cl_trex_json_deserializer.
*赋值
json_string = '[{preis:"100.000000",bnfpo:"00010" }]'.
*处理数据
create object deserializer.
deserializer->deserialize(
exporting json = json_string
importing abap = lt_json ).
注:这种方法受限制,一不小心还会出错。 键值对的话,键一定不能加引号
方法二(推荐):
代码语言:javascript复制DATA lr_json_serializer TYPE REF TO zCL_TREX_JSON_SERIALIZER.
DATA gs_itab TYPE zsmm013_item.
DATA:json_string TYPE string.
json_string = '{"itemList":[{"PREIS":100.000000,"BNFPO":"00010"},{"PREIS":100.000000,"BNFPO":"00020"}]}'.
/ui2/cl_json=>deserialize( EXPORTING