反序列化复杂对象

时间:2014-06-04 18:43:54

标签: c# json serialization deserialization

我试图反序列化浏览器发送的对象。我的对象是Detail的数组,名称为key。名称是字符串,详细信息是具有属性的对象。

这是javascript对象的图片:

Picture of the javascript object

这是我收到的JSON字符串,使用" JSON.stringify(TemplateDetails)创建":

"{\"UDF1-0-div\":{\"UDFtitle\":\"theTitle\",\"DDLType\":\"STRING\",\"defaultValue\":\"defVal\",\"minLength\":\"1\",\"maxLength\":\"6\",\"decimals\":\"\",\"DDLTable\":\"\",\"DDLFilter\":\"\",\"DDLAction\":\"TEST\",\"DDLfontfamily\":\"Verdana\",\"DDLSize\":\"12px\",\"DDLTextAlignment\":\"left\",\"colorTitle\":\"#FFFFFF\",\"colorText\":\"#FFFFFF\"}}"

我想在c#代码中重新创建对象。

2 个答案:

答案 0 :(得分:1)

首先,您应该创建一个包含所需属性的类:

   public class MyClass
    {
    public string DDLAction{ get; set; }
    public string DDLFilter{ get; set; }
    public string DDLSize{ get; set; }

    // put all of your attributes
    //...
    }

反序列化:

System.Web.Script.Serialization.JavaScriptSerializer ser = new System.Web.Script.Serialization.JavaScriptSerializer();
            MyClass Obj = ser.Deserialize<MyClass>(input);

答案 1 :(得分:0)

这不是字典,字典看起来像这样:

{
    "objName": {
        ["title", "thetitle"], 
        ["DDLType":"STRING"], 
        ["defaultValue": "defVal"]
    }
}

你有一个常规对象,必须按原样创建它。