【发布时间】:2019-07-05 15:22:13
【问题描述】:
我可以毫无问题地从 expandoobject 获取元素内部文本。我不知道如何获取属性的值。
通过Console.WriteLine(obj.Message.Body),我可以在body元素中得到预期的字符串。
private void TestXML()
{
string xmlString = @"<?xml version=""1.0"" encoding=""utf-8""?><Message important=""yes"" recevied=""2019-2-12""><Body>Hi there fella!</Body></Message>";
XDocument doc = XDocument.Parse(xmlString);
string json = JsonConvert.SerializeXNode(doc);
dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json);
Console.WriteLine(obj.Message);
}
我进行了调试,在 obj.Message 下我可以看到 3 个字段:
- @important 值为“yes”
- @received 值为“2019-2-12”
- 具有“嗨,伙计!”值的正文
有没有办法用 @ 前缀检索前 2 个字段的值?我不知道如何处理动态对象上的这个 @ 字符。
【问题讨论】:
-
你为什么要这样序列化它?
-
我从这里得到它:stackoverflow.com/questions/13171525/…,对我来说是最简单的方法,因为我也在使用 json 格式。
标签: c# json xml json.net expandoobject