无法反序列化JSON

时间:2013-09-25 09:41:41

标签: c# json deserialization

我试图简单地使用JavaScriptSerializer类反序列化JSON有效负载并遇到类属性的问题,我将这个假定的反序列化数据设置为'null'。

JSON:

{
  "XmlPayload": "<PaperLessTimeSheetActivation xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://host.adp.com\"><iSIClientID>99783971</iSIClientID><organizationId>FDGFGD</organizationId><statusDescription>Success</statusDescription></PaperLessTimeSheetActivation>"
}

这是我的代码:

var jsObject = new JavaScriptSerializer();

string holdData = xmlPayload.ToString();

//*****issue: JSON XmlPayLoadConvert property is 'null'.
JSONConverted objectToConvert = jsObject.Deserialize<JSONConverted>(holdData);

string stringXDoc = ConvertToXDoc(objectToConvert.XmlPayloadToConvert);

这里反序列化数据应该映射的类:

public class JSONConverted
{
    public string XmlPayloadToConvert
    {
        get;
        set;
    }
}

谁能告诉我哪里出错?

1 个答案:

答案 0 :(得分:2)

通过编辑,错误变得明显:XmlPayloadXmlPayloadToConvert不同。

将您的类型更改为:

public class JSONConverted
{
    public string XmlPayload {get;set;}
}

它会正常工作。使用一些序列化程序(例如Json.NET),您还可以告诉它如何映射名称:

[DataContract]
public class JSONConverted
{
    [DataMember(Name = "XmlPayload") ]
    public string XmlPayloadToConvert {get;set;}
}