
使用 Json.Net 序列化 PagedResult
Json.Net 將實作 IEnumerable 的類別視為陣列。使用 [JsonObject] 裝飾派生類別將僅序列化派生類別成員,並省略列表。
解決方案1:公開清單屬性
依照Konrad 的建議,建立一個衍生類別上的公開屬性公開清單:
class PagedResult<T> : List<T>
{
    public IEnumerable<T> Items { get { return this; } }
}解決方案2: 自訂JsonConverter
或者,建立一個自訂 JsonConverter 來序列化整個物件:
class PagedResultConverter<T> : JsonConverter
{
    // ... (implementation as provided in the answer) ...
}將轉換器加入 JsonSerializerSettings:
JsonSerializerSettings settings = new JsonSerializerSettings(); settings.Converters.Add(new PagedResultConverter<T>());
範例用法
PagedResult<string> result = new PagedResult<string> { "foo", "bar", "baz" };
// ... (populate other properties) ...
string json = JsonConvert.SerializeObject(result, settings);{
  "PageSize": 10,
  "PageIndex": 0,
  "TotalItems": 3,
  "TotalPages": 1,
  "Items": [
    "foo",
    "bar",
    "baz"
  ]
}以上是如何使用 Json.Net 序列化 PagedResult 物件?的詳細內容。更多資訊請關注PHP中文網其他相關文章!