0

我希望你能帮助我。我正在尝试将响应对象反序列化为 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”属性。

请指教!谢谢!

4

2 回答 2

0

尝试以下

 public class ListRecev
    {
        public string href { get; set; }

    }
  var resultjson = JsonConvert.DeserializeObject<ListRecev>(result);
  foreach (var backgroundTaskURL in resultjson)
  {
   filaUPloads.Add(backgroundTaskURL.href);
  }
于 2019-10-22T19:52:27.127 回答
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"]);
}
于 2019-10-22T19:32:20.800 回答