小编Mar*_*ius的帖子

如何从动态对象获取反序列化的xml属性

我可以毫无问题地从 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);

    }
Run Code Online (Sandbox Code Playgroud)

我进行了调试,在下面obj.Message我可以看到 3 个字段:

  • @important 值为“yes”
  • @received 值为“2019-2-12”
  • 具有价值的身体“嗨,伙计!”

有没有办法检索带有 @ 前缀的前 2 个字段的值?我不知道如何在动态对象上处理这个@字符。

c# xml json json.net expandoobject

5
推荐指数
1
解决办法
973
查看次数

标签 统计

c# ×1

expandoobject ×1

json ×1

json.net ×1

xml ×1