我试图简单地使用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;
}
}
谁能告诉我哪里出错?
答案 0 :(得分:2)
通过编辑,错误变得明显:XmlPayload
与XmlPayloadToConvert
不同。
将您的类型更改为:
public class JSONConverted
{
public string XmlPayload {get;set;}
}
它会正常工作。使用一些序列化程序(例如Json.NET),您还可以告诉它如何映射名称:
[DataContract]
public class JSONConverted
{
[DataMember(Name = "XmlPayload") ]
public string XmlPayloadToConvert {get;set;}
}