c# - ValueTuples 在序列化时会丢失其属性名称
问题描述
在尝试将命名值元组序列化为 JSON 字符串时,它会丢失分配给项目的名称
(string type, string text) myTypes = ("A", "I am an animal");
var cnvValue = JsonConvert.SerializeObject(myTypes);
我期望序列化的值为
{"type":"A","text":"我是动物"}
但实际结果是
{"Item1":"A","Item2":"我是动物"}
有两件事我很想知道
- 为什么它会这样
- 如何获得预期的输出
解决方案
如何获得预期的输出
像这样的东西:
var myTypes = new{ type = "A", text = "I am an animal"};
var cnvValue = JsonConvert.SerializeObject(myTypes);
如果您正在寻找类似的简洁方法,应该可以工作。虽然不使用ValueTuple
s (但匿名类型)在引擎盖下;这是我将您的问题解释为“如何在不完全声明类等的情况下生成这个预期的 JSON”</p>
推荐阅读
- web-services - 异步方法中的 .Show() 上未显示进度对话框
- html - 如何在导航栏中居中搜索框
- appium - 如果发生特定异常,将状态从失败更改为跳过
- powershell - 未在 Windows Server 上创建故障转储
- linux - 如何使用 PSQL 更改数据库中表的列名?
- java - 使用 Spring 将 Java 从 5 升级到 8
- java - 如何创建一个圆角按钮并在运行时以编程方式设置任何颜色
- html - 通过 css 或普遍应用 img-fluid 用于数据库提供的图像
- c# - 为什么在同一个类中使用构造函数参数时可以访问私有属性
- python-3.x - 获取时间序列数据框中每个日期的最后一个条目