如何在Delphi中使用REST.JSON将JSON转换为列表?

如何在Delphi中使用REST.JSON将JSON转换为列表?,json,list,delphi,delphi-10.2-tokyo,Json,List,Delphi,Delphi 10.2 Tokyo,我有一个JSON文件,如下所示: [{id:1,姓名:约翰},{id:2,姓名:彼得}] 我想将此列表存储到ClientDataSet或类似的东西中。在Delphi 10.2 Tokyo中如何使用REST.Json单元来实现这一点?使用REST.Json,我不知道,但是如果您想将[{id:1,name:JOHN},{id:2,name:PETER}]转换为Tstringlist,您可以使用 Delphi 10.2 Tokyo的REST客户端库包括一个TrestresponsetAseTadapt

我有一个JSON文件,如下所示:

[{id:1,姓名:约翰},{id:2,姓名:彼得}]
我想将此列表存储到ClientDataSet或类似的东西中。在Delphi 10.2 Tokyo中如何使用REST.Json单元来实现这一点?

使用REST.Json,我不知道,但是如果您想将[{id:1,name:JOHN},{id:2,name:PETER}]转换为Tstringlist,您可以使用


Delphi 10.2 Tokyo的REST客户端库包括一个TrestresponsetAseTadapter类,用于将JSON解析为数据集

看看10.2中包含的RESTDemos示例项目。有一个在“获取数据集”选项卡上使用适配器的示例

按钮单击事件中的代码如下:

  ResetRESTComponentsToDefaults;

  RESTResponseDataSetAdapter.Response:= RESTResponse;
  RESTResponseDataSetAdapter.Dataset:= ClientDataSet;

  RESTClient.BaseURL := edt_DataSet_BaseURL.Text;
  RESTRequest.Resource := edt_DataSet_ResourceURI.Text;
  RESTRequest.Execute;

JSON看起来不错,但实际上就不那么好了,至少对我来说是这样。它不能很好地处理列表,除非JSON是由Delphi从列表中创建的;它有一个名字相当奇怪的helper字段,其中包含的元素数量我现在记不起它的名字了。我认为其他JSON转换器更好,但我不能确定,因为我最终编写了自己的例程。也许其他人已经解决了这个问题。@Dsm我知道你的意思,我试图将TObjectList转换为Json,但每次都在Json文件中添加了ownsObjects和listHelper属性。最后,我不得不创建自己的转换器。是的,就是这样。要再次转换回来,需要将它们添加到JSON中。我也有关于枚举的问题,但我看到一篇文章解决了这个问题。aaaa这就是为什么我使用SuperObject/X-SuperObject.aaaaaa这就是我创建的原因
  ResetRESTComponentsToDefaults;

  RESTResponseDataSetAdapter.Response:= RESTResponse;
  RESTResponseDataSetAdapter.Dataset:= ClientDataSet;

  RESTClient.BaseURL := edt_DataSet_BaseURL.Text;
  RESTRequest.Resource := edt_DataSet_ResourceURI.Text;
  RESTRequest.Execute;