点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的SAP社区
我希望您能帮助我在SAP中进行JSON反序列化。 我收到一个JSON字符串,并希望将其转换为内部表。 在下面,您可以看到一个有效的示例,但它的行为不像普通的JSON反序列化。
这些是问题:
要对此进行测试,您必须创建以下报告和以下转换。
这是报告:
*&--------------------------------------------- ------------------------ * *&报告ZJSON_SEQUENCE *&------------------------------------------------ --------------------- * 报告zjson_sequence。 参数:p_file类型字符串是必需的。 类gcl_json定义。 公共部分。 类方法主要。 结束类。 类gcl_json实现。 方法主。 类型:lty_data的开头, firstfield类型c的长度为10, 第二字段类型boole_d, lty_data的末尾。 数据:lt_string类型的字符串表, lty_data的lt_data类型表, lv_string类型字符串。 调用函数'GUI_UPLOAD' 出口 文件名= p_file 桌子 data_tab = lt_string 例外情况 其他= 1。 如果sy-subrc <> 0。 消息ID sy-msgid类型sy-msgty号 sy-msgno和sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 在lt_string处循环以分配field-symbol()。 将lv_string 连接到lv_string。 结束循环。 调用转换zjson_sequence源xml lv_string 结果根= lt_data。 循环到lt_data分配字段符号( )。 写入:"第一字段=", -第一字段, '; 第二个字段=', -第二个字段。 跳跃。 结束循环。 方法。 结束类。 在p_file值请求的选择屏幕上。 调用函数" WS_FILENAME_GET" 输入 文件名= p_file 例外情况 其他= 1。 选择开始。 gcl_json => main()。
这是转换:
<?sap.transform简单吗?> <对象><对象>
这是有效的JSON示例。 需要将其保存为文本文件并由报告上传:
{ "一些数据": [ { " FirstField":" ABCDE12345", " SecondField":" true" } ] }
这是JSON示例,无效:
{ "一些数据": [ { " SecondField":是的, " FirstField":" ABCDE12345" } ] }
期待您的指导。
亲切问候
马克·安德烈
为什么不使用运行良好的东西。
例如以下示例:
https://wiki.scn.sap.com/wiki/display/Snippets/One+more+ABAP+to+JSON+Serializer + and + Deserializer
https://blogs.sap.com/2013/02/21/three-different-ways-to-serialize-and-deserialize-complex-abap-data/ p>
我认为布尔值的问题可能已经解决,但不能确定,因为前一段时间我使用了它(第一个链接)。
我想避免这种情况, 可以使用来检查名称,以防万一字段名称是固定的...
当您使用CALL TRANSFORMATION并且输入字符串为JSON时,它将自动将其转换为XML,并且 然后应用转换。 因此,您的问题是关于如何在简单转换中以任何顺序允许元素-> cf
我没有使用/UI2/CL_JSON,因为您提到的第二个博客中有一个 更新使用此类是旧技术。
但是,当我替换这些行时...
...在我的上述报告中,与此有关:
然后它仍然不起作用,因为lt_data在执行后为空。
您将在此处找到一些JSON解析想法: https://blogs.sap.com/2017/08/03/parsing-json-in- abap /
MarkAndréKluck tt:cond就是这个问题 你得到什么垃圾堆? 如果您的转换过于复杂,请使用类进行反序列化。
一周热门 更多>