【发布时间】:2020-12-25 12:08:34
【问题描述】:
我从 API 接收 XML 字符串,并希望将这些转换为 C# 对象键值以处理这些值,同时应用一些断言。
消息的格式为字符串格式:
<?xml version="1.0" encoding="UTF-8"?>
<ReportData>
<ProjectName>Test Data</ProjectName>
<Unit>Unit 1</Unit>
<ReportLabel.Cost>394</ReportLabel.Cost>
</ReportData>
在我得到字符串 API 响应后,我试图像这样反序列化 XMl,其中 responseAPI 是上面的 xml:
XmlDocument doc = new XmlDocument();
using (var reader = JsonReaderWriterFactory.CreateJsonReader(Encoding.UTF8.GetBytes(responseAPI), XmlDictionaryReaderQuotas.Max))
{
XElement xml = XElement.Load(reader);
doc.LoadXml(xml.ToString());
}
此时我有 xml 但我无法获取键值对象。
我在努力
var jsonText = JsonConvert.SerializeXmlNode(doc);
或
serializer = new XmlSerializer(typeof(Object));
using (TextReader reader = new StringReader(responseAPI))
{
var result = (Object)serializer.Deserialize(reader);
}
或
var response = JsonConvert.DeserializeObject<Dictionary<string, object>>(responseAPI);
我不熟悉这种 XML 响应,但不确定执行此操作的方法。不像 JSON 格式那么简单。
【问题讨论】:
-
它是一个不能使用 JsonConvert 的 XML