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

时间:2015-10-09 10:25:30

标签: c# json json.net

我正在使用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());
    }
}

2 个答案:

答案 0 :(得分:1)

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

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

到此:

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

或者如果您知道响应中只有一个项目,您可以简化整个过程:

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

答案 1 :(得分:-1)

您可能从JSON.NET中受益匪浅,它是一个易于安装的NuGet软件包。使用该软件包,您可以轻松编写:

JsonConvert.DeserializeObject<LoginTicketResponse>(jsonString);