一尘不染

使用Json.net进行序列化时,如何更改属性名称?

c#

我在C#DataSet对象中有一些数据。我现在可以使用像这样的Json.net转换器序列化它

DataSet data = new DataSet();
// do some work here to populate 'data'
string output = JsonConvert.SerializeObject(data);

但是,这将使用data打印到.json文件时的属性名称。我想将属性名称更改为其他名称(例如,将“ foo”更改为“ bar”)。

Json.net文档中的
“对JSON进行序列化和反序列化”→“序列化属性”下,其显示为“ JsonPropertyAttribute …允许自定义名称”。但是没有例子。
有谁知道如何使用JsonPropertyAttribute将属性名称更改为其他名称?

直接链接到文档

Json.net的文档似乎很少。如果您有一个很好的例子,我将尝试将其添加到官方文档中。谢谢!


阅读 394

收藏
2020-05-19

共1个答案

一尘不染

您可以用[JsonProperty]允许您指定其他名称的属性来修饰希望控制其名称的属性:

using Newtonsoft.Json;
// ...

[JsonProperty(PropertyName = "FooBar")]
public string Foo { get; set; }

文档:
序列化属性

2020-05-19