Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JavaScript对象反序列化为一个属性为Enum的对象?_Javascript_C#_Angularjs_Json_Json.net - Fatal编程技术网

如何将JavaScript对象反序列化为一个属性为Enum的对象?

如何将JavaScript对象反序列化为一个属性为Enum的对象?,javascript,c#,angularjs,json,json.net,Javascript,C#,Angularjs,Json,Json.net,我尝试使用以下代码时出错: filters.Filters = JsonConvert.DeserializeObject<List<SearchFilterItem>>(customFilterString); 我试图从JavaScript发送以下内容: if($.isNumeric($scope.type)){ 过滤器={ columnDisplayName:“类型Id”, columnName:'LTypeId', columnType:parseInt('1'

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

filters.Filters = JsonConvert.DeserializeObject<List<SearchFilterItem>>(customFilterString);
我试图从JavaScript发送以下内容:

if($.isNumeric($scope.type)){
过滤器={
columnDisplayName:“类型Id”,
columnName:'LTypeId',
columnType:parseInt('1'),
值:$scope.type.toString(),
displayValue:$scope.type.toString(),
strOperator:'Equals',逻辑:“AND”

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

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


原来这是我自己的愚蠢错误。在filterItem类中,列类型是另一个类。在该类中,我们还有一个ColumnType属性,它是一个枚举。因此,只要我将JavaScript更改为使用ColumnType:{ColumnType:'Numeric'}它本身就可以工作,不需要额外的更改。我也请同事帮助我,我们花了大约一个小时或更多的时间来研究这个问题,直到我终于明白了这一点。

如果你能发布一个json示例,那将非常有帮助
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