首页 > 解决方案 > ValueTuples 在序列化时会丢失其属性名称

问题描述

在尝试将命名值元组序列化为 JSON 字符串时,它会丢失分配给项目的名称

(string type, string text) myTypes = ("A", "I am an animal");
var cnvValue = JsonConvert.SerializeObject(myTypes);

我期望序列化的值为

{"type":"A","text":"我是动物"}

但实际结果是

{"Item1":"A","Item2":"我是动物"}

有两件事我很想知道

标签: c#json.nettuplesvaluetuple

解决方案


如何获得预期的输出

像这样的东西:

var myTypes = new{ type = "A", text = "I am an animal"};
var cnvValue = JsonConvert.SerializeObject(myTypes);

如果您正在寻找类似的简洁方法,应该可以工作。虽然不使用ValueTuples (但匿名类型)在引擎盖下;这是我将您的问题解释为“如何在不完全声明类等的情况下生成这个预期的 JSON”</p>


推荐阅读