我可以毫无问题地从 expandoobject 获取元素 innertext。我不知道如何获取属性的值。通过这样做,我可以在 body 元素内获得预期的字符串。Console.WriteLine(obj.Message.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); }我做了一个调试,在下面我可以看到3个字段:obj.Message值为“是”的@important值为“2019-2-12”的@received身体与值“嗨,伙计们!有没有办法用@ 前缀检索前2个字段的值?我不知道如何处理动态对象上的这个@字符。
1 回答
缥缈止盈
TA贡献2041条经验 获得超4个赞
要处理特殊字符,例如动态对象中的“@”,必须将其转换为 '(IDictionary)。然后,您可以将接收的属性作为波纹管:
var received = ((IDictionary<string, object>)obj.Message)["@recevied"];
- 1 回答
- 0 关注
- 59 浏览
添加回答
举报
0/150
提交
取消