我试图使用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;
}
}
谁能告诉我我要去哪里错了?
进行编辑后,错误变得很明显:XmlPayload
与并不相同XmlPayloadToConvert
。
将您的类型更改为:
public class JSONConverted
{
public string XmlPayload {get;set;}
}
它会很好地工作。使用某些序列化器(例如,Json.NET),您还可以告诉它如何映射名称:
[DataContract]
public class JSONConverted
{
[DataMember(Name = "XmlPayload") ]
public string XmlPayloadToConvert {get;set;}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句