Shr*_*mbo 12 c# json tuples system.text.json .net-6.0
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 {}
Run Code Online (Sandbox Code Playgroud)
它可以通过许多解决方法来解决
我试图理解为什么或是什么阻止了序列化器理解元组
与元组的结构有关吗
Pan*_*vos 20
ValueTuple 没有属性,只有公共字段。在 .NET 6 之前,System.Text.Json 仅序列化公共属性。这是最常见的情况,因为字段被视为实现,而不是对象 API 的一部分。所有序列化程序都将属性优先于字段,除非指示也序列化字段。
.NET 6添加了以与其他序列化程序类似的方式序列化字段的功能,可以使用字段上的属性或序列化程序设置。
由于我们无法向元组字段添加属性,因此我们可以使用设置:
var options = new JsonSerializerOptions
{
IncludeFields = true,
};
var json = JsonSerializer.Serialize(tuple1, options);
Run Code Online (Sandbox Code Playgroud)
这会产生:
{"Item1":1,"Item2":2}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5145 次 |
| 最近记录: |