Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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
将Json字符串转换为C#类对象_C#_Json_Asp.net Mvc_Serialization - Fatal编程技术网

将Json字符串转换为C#类对象

将Json字符串转换为C#类对象,c#,json,asp.net-mvc,serialization,C#,Json,Asp.net Mvc,Serialization,我有一个json字符串,如{field:'DateToEnd',dir:'asc'} 我在c#中有一个类具有以下两个属性 public class SortDescriptor { public SortDescriptor() { } public string Field { get; set; } public string Dir { get; set; } } 现在我想把这个字符串转换成class对象,这样我就可以访问属性了 我尝试了下面的例子

我有一个json字符串,如
{field:'DateToEnd',dir:'asc'}

我在c#中有一个类具有以下两个属性

public class SortDescriptor
{
    public SortDescriptor()
    {
    }
    public string Field { get; set; }
    public string Dir { get; set; }
}
现在我想把这个字符串转换成class对象,这样我就可以访问属性了

我尝试了下面的例子。但这对我不起作用

JavaScriptSerializer serialize = new JavaScriptSerializer();
SortDescriptor sort = (SortDescriptor)serialize.DeserializeObject(fixSortString);
它给出了以下错误:

Unable to cast object of type 'System.Collections.Generic.Dictionary`2[System.String,System.Object]' to type 'NF.Common.SortDescriptor'.

有人能告诉我怎么做吗?

我很确定反序列化对象需要一个类型作为第二个参数,例如

JavaScriptSerializer serialize = new JavaScriptSerializer();
SortDescriptor sort = (SortDescriptor)serialize.DeserializeObject(fixSortString, typeof(SortDescriptor));
或使用泛型:

JavaScriptSerializer serialize = new JavaScriptSerializer(); 
SortDescriptor sort = (SortDescriptor)serialize.DeserializeObject<SortDescriptor>(fixSortString);
JavaScriptSerializer serialize=新的JavaScriptSerializer();
SortDescriptor sort=(SortDescriptor)serialize.DeserializeObject(fixSortString);

使用来自nuget的json.net(newtonsoft.json)
序列化.反序列化(fixSortString)@JeremyThompson我已经编辑了我的问题。@GeneR它对我有用。谢谢。这是我的第二个答案