2

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

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;
    }
}

谁能告诉我哪里出错了?

4

1 回答 1

2

通过编辑,错误变得明显:XmlPayloadXmlPayloadToConvert.

将您的类型更改为:

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

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

[DataContract]
public class JSONConverted
{
    [DataMember(Name = "XmlPayload") ]
    public string XmlPayloadToConvert {get;set;}
}
于 2013-09-25T09:50:03.337 回答