【问题标题】:Passing the LoadResult object (DevExtreme.AspNet.Data.ResponseModel) from the API and its deserialization on the client side从 API 传递 LoadResult 对象 (DevExtreme.AspNet.Data.ResponseModel) 并在客户端对其进行反序列化
【发布时间】:2022-10-14 15:53:45
【问题描述】:

我想从 API 获取 LoadResult (DevExtreme.AspNet.Data.ResponseModel) 对象并在客户端使用它(反序列化后)。

在 API 服务器中,我有返回的方法:

return Ok(DataSourceLoader.Load(items.Select(item => new FormattedItem(item, project, serialNumberFormatter, diagnosticNumberFormatter)
                        {
                            DirectItemLink = _itemLinkBuilder.Build(item, projectId, itemId),
                            DocumentLink = _itemDocumentLinkBuilder.Build(item),
                            CanEdit = _permissionService.CanEdit(item, userId),
                            ShowHistoryPopups = isHistoryEnabled
                        }), loadOptions));

在客户端,我通过以下方式获取此对象:

var apiClient = new HttpClient();
var apiResponse = await apiClient.GetAsync(url);
string json = await apiResponse.Content.ReadAsStringAsync();

但是当我尝试将 json 反序列化为对象时

LoadResult items = JsonConvert.DeserializeObject<LoadResult>(json);

我有错误

无法创建和填充列表类型 System.Collections.IEnumerable。路径“数据”,第 1 行,位置 9。

我怎样才能做到这一点?

此致。

【问题讨论】:

  • 显示您的LoadResult 课程。很可能属性dataIEnumerableIEnummerable 不是类型,而是接口。你需要像List 这样的具体类型。
  • var 结果 = 等待 Server.GetUsers(); var j = JsonConvert.SerializeObject(Result.Data); var users = JsonConvert.DeserializeObject<List<User>>(j);这是一种方法。

标签: c# json-deserialization devextreme


【解决方案1】:

我也收到了反序列化行的错误。你解决问题了吗?

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-25
  • 2012-05-20
  • 2022-01-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多