![](/img/trans.png)
[英]How to deserialize a JSON array containing different data types to a single object
[英]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.