[英]Using HttpContent.ReadAsAsync<T> to parse responses with one object or an array
我正在集成到從幾乎端點返回此 model 的 API
{
meta: { ... },
data: { ... }
}
但是對於某些調用,數據是同種對象的數組
{
meta: { ... },
data: [
{ ... },
{ ... }
]
}
我想使用HttpContent.ReadAsAsync<ResponseObj>
將這兩個轉換為我的 C# 類,並且我已經像這樣設置了響應 class :
public class ResponseObj {
public MetaObj Meta {get;set;}
public DataObj[] Data {get;set;}
}
有點出乎意料,我在嘗試解析第一個響應時遇到異常。 是否可以告訴 JSON 解析器處理單個數據 object 並返回一個單元素數組?
我能看到的唯一其他解決方案是為兩種不同的響應類型創建單獨的ResponseObj
定義。
將您的 ResponseObj 創建為通用 class。
public class ResponseObj<T> {
public MetaObj Meta {get;set;}
public T Data {get;set;}
}
您可以使用HttpContent.ReadAsAsync<ResponseObj<DataObj>>
或HttpContent.ReadAsAsync<ResponseObj<DataObj[]>>
反序列化 json
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.