簡體   English   中英

使用 HttpContent.ReadAsAsync<t> 使用一個 object 或數組解析響應</t>

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM