【发布时间】: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课程。很可能属性data是IEnumerable。IEnummerable不是类型,而是接口。你需要像List这样的具体类型。 -
var 结果 = 等待 Server.GetUsers(); var j = JsonConvert.SerializeObject(Result.Data); var users = JsonConvert.DeserializeObject<List<User>>(j);这是一种方法。
标签: c# json-deserialization devextreme