JSON 序列化程式回傳一個空的 JSON 物件。
using System.Text.Json;
(int, int) tuple1 = (1, 2);
var token = JsonSerializer.Serialize(tuple1); // return empty object {}
(int item1, int item2) tuple2 = (1, 2);
token = JsonSerializer.Serialize(tuple2); // return empty object {}
(int item1, int item2) tuple3 = (item1:1, item2:2);
token = JsonSerializer.Serialize(tuple3); // return empty object {}
它可以通過許多解決方法通過
我試圖理解為什么或什么阻止序列化程式理解元組
它與元組的結構有關嗎
uj5u.com熱心網友回復:
ValueTuple 沒有屬性,只有公共欄位。在 .NET 6 之前,System.Text.Json 僅序列化公共屬性。這是最常見的情況,因為欄位被視為實作,而不是物件 API 的一部分。所有序列化程式都將屬性優先于欄位,除非指示也序列化欄位。
.NET 6添加了以與其他序列化程式類似的方式序列化欄位的功能,可以使用欄位上的屬性或序列化程式設定。
由于我們無法向元組欄位添加屬性,我們可以使用設定:
var options = new JsonSerializerOptions
{
IncludeFields = true,
};
var json = JsonSerializer.Serialize(tuple1, options);
這產生:
{"Item1":1,"Item2":2}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/388619.html
上一篇:處理switch塊內的多個鍵
