在C#中动态反序列化JSON后,属性名称中存在非法字符

时间:2016-04-19 18:05:06

标签: c# json

我试图通过使用动态类型反序列化在其某些属性名称中包含破折号( - )字符的JSON:

string json = MyWebClient.DownloadString("http://api.crossref.org/works/10.1093/brain/75.2.187");
dynamic result = JsonConvert.DeserializeObject<dynamic>(json);
string title = result.message.title[0];
string journal = result.message.container-title[0];

由于使用了非法字符,我无法获得“容器标题”值。而且我不想简单地使用“替换()”来删除短划线字符。有什么办法吗?

1 个答案:

答案 0 :(得分:1)

由于message也是JObject,您可以像字典一样访问其属性

result.message["container-title"]