希望您能帮助我。我正在尝试将响应对象反序列化为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”属性。
请指教!谢谢!
答案 0 :(得分:0)
如果使用的是Newtonsoft.Json,则可以改用JObject,我相信这只是对动态对象的类似于JSON映射的抽象。
var result = await message.Content.ReadAsStringAsync();
dynamic response = JsonConvert.DeserializeObject<JObject>(result);
foreach (var backgroundTaskURL in response)
{
filaUPloads.Add(backgroundTaskURL["href"]);
}
答案 1 :(得分:0)
尝试以下
public class ListRecev
{
public string href { get; set; }
}
var resultjson = JsonConvert.DeserializeObject<ListRecev>(result);
foreach (var backgroundTaskURL in resultjson)
{
filaUPloads.Add(backgroundTaskURL.href);
}