如果 JSON-array 为空,则 TRESTResponseDataSetAdapter 向数据集添加一行

问题描述

如果我有一个带有 TRESTResponseDataSetAdapterRootElement = 'testdata' 并为它提供以下 JSON,它会向连接的数据集添加一行。

   RESTResponseDataSetAdapter1.ResponseJSON := TRESTResponseJSON.Create(
      Form1,TJSONObject.ParseJSONValue('{"testdata":[]}'),true
   );

如果我在数组中提供一些数据,我会在数据集中得到预期的行,但如果数组为空,我会得到一行似乎都是空值。

似乎获得空数据集的唯一方法是提供无效的内容,例如 {"testdata":[,]}。这给了我一个空数据集而不会产生任何错误

这是预期的行为吗?如果没有,这里可能是什么问题?我曾尝试更改 TypesMode,但无论是哪种设置,我都得到相同的结果。

我使用的数据集是来自 TdxMemDataDevExpress。我最近从 Delphi 10.2 升级到 Delphi 10.4。事情在 10.2 上运行良好(即,如果 JSON 数组为空,则数据集也将为空),因此似乎在 10.3 或 10.4 中发生了一些变化。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)