我有一个要反序列化的匿名数组,这里是第一个数组对象的示例
[
{ "time":"08:55:54",
"date":"2016-05-27",
"timestamp":1464332154807,
"level":3,
"message":"registerResourcePath ('', '/sap/bc/ui5_ui5/ui2/ushell/resources/')",
"details":"","component":"sap.ui.ModuleSystem"},
{"time":"08:55:54","date":"2016-05-27","timestamp":1464332154808,"level":3,"message":"URL prefixes set to:","details":"","component":"sap.ui.ModuleSystem"},
{"time":"08:55:54","date":"2016-05-27","timestamp":1464332154808,"level":3,"message":" (default) : /sap/bc/ui5_ui5/ui2/ushell/resources/","details":"","component":"sap.ui.ModuleSystem"}
]
我尝试使用CL_TREX_JSON_SERIALIZER
进行反序列化,但是它已损坏并且无法与我的JSON here is why一起使用>
然后我尝试了/UI2/CL_JSON
,但它需要一个“结构”以完全适合JSON Object给定的对象。在我的情况下,“结构”表示具有属性time, date, timestamp, level, message
和details
的内部对象表。出现了问题:它不能正确处理引用,并使用类描述来描述分配给字段符号的字段。由于我没有对象列表,而只有对象的引用列表,因此该解决方案也不起作用。
作为第三次尝试,我按照CALL TRANSFORMATION
的描述尝试了Horst Keller,但是使用这种方法,我无法在匿名数组and here is why中读取
我的主要观点:
sap.ui.log
中获得的信息>我有一个要反序列化的匿名数组,这里是第一个数组对象的示例[{“ time”:“ 08:55:54”,“ date”:“ 2016-05-27”,“ timestamp” :1464332154807,“级别”:3,“ ...
您的问题不是来自数组的匿名性,而是来自SAP JSON(De)serializer的尴尬,后者不考虑双引号,双引号将JSON属性括起来。对该问题进行了详细描述in this answer。如果您不想即时更改JSON,则唯一的方法就是更改CL_TREX_JSON_DESERIALIZER
类like this。
[/UI5/CL_JSON_PARSER
解析格式未知的JSON。