gpt4 book ai didi

javascript - Newtonsoft.JsonConvert - 如何将 JavaScript 对象反序列化为一个属性为 Enum 的对象?

转载 作者:行者123 更新时间:2023-11-29 17:41:26 25 4
gpt4 key购买 nike

当我尝试使用以下代码时出现错误:

filters.Filters = JsonConvert.DeserializeObject<List<SearchFilterItem>>(customFilterString);

SearchFilterItem 是以下类:

public Guid Id { get; set; }
public string ColumnName { get; set; }
public string ColumnDisplayName { get; set; }
public SearchColumnTypes ColumnType { get; set; } //Character, Numeric, Boolean, Date, DateTime.
public SearchOperators Operator { get; set; }
public string Value { get; set; }
public string DisplayValue { get; set; }
public string Logic { get; set; } //And / Or

我尝试从 JavaScript 发送以下内容:

if ($.isNumeric($scope.type)) {
filter = {
columnDisplayName: 'Type Id',
columnName: 'LTypeId',
columnType: parseInt('1'),
value: $scope.type.toString(),
displayValue: $scope.type.toString(),
strOperator: 'Equals', Logic: "AND"
};

那么,我的问题是如何正确发送作为 C# 枚举的 columnType?

我在运行时遇到这个错误:

"Could not cast or convert from System.Int64 to Siriusware.Models.Messages.SearchColumnTypes."} System.Exception {System.ArgumentException

我该怎么办?

最佳答案

Newtonsoft.Json 中有一个 StringEnumConverter 属性,它具有这个确切的目的。您可以在此处查看相关文档:

https://www.newtonsoft.com/json/help/html/t_newtonsoft_json_converters_stringenumconverter.htm

这是一篇博客文章,提供有关该主题的有趣信息,例如自定义转换器:

https://bytefish.de/blog/enums_json_net/

关于javascript - Newtonsoft.JsonConvert - 如何将 JavaScript 对象反序列化为一个属性为 Enum 的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52843163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com