我有这个 XML 输入:
<Response xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Status>Ok</Status></Response>
我试图通过以下方式将其转换为对象:
XmlDocument xmlNode = new XmlDocument();
xmlNode.LoadXml(responseContent);
string jsonNode = JsonConvert.SerializeXmlNode(xmlNode);
var responseModel = JsonConvert.DeserializeObject<NotificationResponse>(jsonNode);
其中 responseContent
是上面的 XML 字符串。然而,而不是得到
{Status: "Ok"}
我得到:
{Status: null}
知道为什么以及如何纠正它吗?
最佳答案
你需要省略RootObject
XmlDocument xmlNode = new XmlDocument();
xmlNode.LoadXml("<Response xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"><Status>Ok</Status></Response>");
string jsonNode = JsonConvert.SerializeXmlNode(xmlNode, Formatting.Indented, true);
Console.WriteLine(jsonNode);
var responseModel = JsonConvert.DeserializeObject<NotificationResponse>(jsonNode);
Console.WriteLine(responseModel.Status);
关于c# - Xml 未正确转换为对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48548390/