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

时间:2016-03-24 06:48:05

标签: c# json asp.net-mvc serialization

我有一个像{field:'DateToEnd',dir:'asc'}

这样的json字符串

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

public class SortDescriptor
{
    public SortDescriptor()
    {
    }
    public string Field { get; set; }
    public string Dir { get; set; }
}

现在我想将此字符串转换为类对象,以便我可以访问属性。

我尝试了以下示例。但它不适合我。

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'.

任何人都可以让我知道我该怎么做吗?

1 个答案:

答案 0 :(得分:0)

我很确定 DeserializeObject 需要一个类型作为第二个参数,例如

JavaScriptSerializer serialize = new JavaScriptSerializer();
SortDescriptor sort = (SortDescriptor)serialize.DeserializeObject(fixSortString, typeof(SortDescriptor));

或使用Generics:

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