You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

DevExtreme LoadResult客户端反序列化报错解决方法

问题根因

报错核心原因是DevExtreme.AspNet.Data.ResponseModel.LoadResult的data属性为非泛型IEnumerable接口类型,Newtonsoft.Json默认无法直接实例化接口,无法确定data字段需要初始化为哪种具体集合类型,因此解析到data路径时抛出类型创建失败错误。

解决方法

优先使用DevExtreme.AspNet.Data官方内置的JSON转换器处理反序列化,无需额外编写自定义转换逻辑,兼容性最高:

  • 确保客户端项目已安装和服务端大版本一致的DevExtreme.AspNet.Data NuGet包
  • 反序列化时传入官方提供的DataSourceLoadResultJsonConverter即可,参考代码如下:
using DevExtreme.AspNet.Data.ResponseModel;
using DevExtreme.AspNet.Data.Helpers;
using Newtonsoft.Json;

// 原有接口请求逻辑无需修改
var apiClient = new HttpClient();
var apiResponse = await apiClient.GetAsync(url);
string json = await apiResponse.Content.ReadAsStringAsync();

// 配置序列化器加入官方专用转换器
var serializerSettings = new JsonSerializerSettings
{
    Converters = { new DataSourceLoadResultJsonConverter() }
};
LoadResult items = JsonConvert.DeserializeObject<LoadResult>(json, serializerSettings);

补充说明

  • 如果客户端定义了和服务端结构完全一致的FormattedItem类型,可以使用泛型版本LoadResult<FormattedItem>作为反序列化目标类型,解析完成后data字段会直接映射为强类型的FormattedItem集合,无需二次类型转换。
  • 不推荐自行编写通用IEnumerable类型转换器处理该问题,官方转换器已经兼容LoadResult所有字段的序列化规则(包括totalCount、groupCount、summary、groupings等特殊字段),自行实现容易出现字段解析不完整、类型不匹配的问题。

内容的提问来源于stack exchange,提问作者Tomasz Filipek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.02 09:51:30