我正在使用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());
}
}
你离得不远。在你的内循环中改变这一行:
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);