繁体   English   中英

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

[英]How to parse a JSON array containing a single item nested in another object

我正在使用 C# 程序中的 Json.Net 调用 CodeCollaborator API。

我从 API 的 HttpResponse 中收到以下 JSON。

[{"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());
    }
}

你离得不远了。 在您的内部循环中更改此行:

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.NET 中受益匪浅,它是一个易于安装的 NuGet 包。 使用该包,您可以轻松编写:

JsonConvert.DeserializeObject<LoginTicketResponse>(jsonString);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM