【发布时间】:2020-02-19 00:08:51
【问题描述】:
我希望你能帮助我。我正在尝试将响应对象反序列化为 C# 中的动态对象。代码如下:
var result = await message.Content.ReadAsStringAsync();
dynamic response = JsonConvert.DeserializeObject<dynamic>(result);
foreach (dynamic backgroundTaskURL in response)
{
filaUPloads.Add(backgroundTaskURL.href);
}
上面的响应动态对象有如下值:
{{
"href": "/me/background-tasks/77fa9922-5a1b-4fce-ada4-7c5c5d093270"
}}
在第一次 foreach 交互时,backgroundTaskURL 动态对象读取:
{
"href": "/me/background-tasks/77fa9922-5a1b-4fce-ada4-7c5c5d093270"
}
由于某种原因我无法理解,backgroundTaskURL 动态对象没有解析“href”属性。
请指教!谢谢!
【问题讨论】:
-
您遇到了
dynamic的问题之一——您永远不知道自己拥有什么。在您的情况下,返回的response不是不是数组,它是单个对象,因此您需要在没有循环的情况下执行filaUPloads.Add(response.href);。
标签: c# json-deserialization jsonconvert