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