如何解析包含嵌套在另一个对象中的单个项目的JSON数组

本文关键字:单个 项目 JSON 数组 一个对象 包含 何解析 嵌套 | 更新日期: 2023-09-27 18:16:50

我正在使用Json调用CodeCollaborator API。

我正在从API接收以下JSON中的HttpResponse。

[{"result":{"loginTicket":"c9c6793926517db05bde47d3dd50026e"}}]

我如何解析它来创建下面提到的LoginTicketResponse对象?

public class LoginTicketResponse
{
    public string loginTicket { get; set; }
}

我试了下面的代码,但没有运气。

JArray a = JArray.Parse(result);
foreach (JObject o in a.Children<JObject>())
{
    foreach (JProperty p in o.Properties())
    {                        
        dynamic stuff = JsonConvert.DeserializeObject(p.ToString());
    }
}

如何解析包含嵌套在另一个对象中的单个项目的JSON数组

你离得不远。在你的内循环中改变这一行:

dynamic stuff = JsonConvert.DeserializeObject(p.ToString());

:

LoginTicketResponse stuff = p.Value.ToObject<LoginTicketResponse>();

或者如果您知道回复中只有一个条目,您可以将整个内容简化为:

JArray a = JArray.Parse(result);
LoginTicketResponse stuff = a[0]["result"].ToObject<LoginTicketResponse>();

您可能从JSON中获益良多。它是一个NuGet包,很容易安装。使用这个包,您可以轻松地编写:

JsonConvert.DeserializeObject<LoginTicketResponse>(jsonString);