1. ホーム
  2. c#

[解決済み] Json.netでシリアライズする際、プロパティ名を変更するにはどうすればよいですか?

2022-03-21 18:39:09

質問

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... allows the name to be customized"と書いてあります。とありますが、例がありません。 JsonPropertyAttributeを使って、プロパティ名を他のものに変更する方法をご存知の方はいらっしゃいますか?

( ドキュメントへの直接リンク )

Json.netのドキュメントはまばらなようです。もし素晴らしい例があれば、公式のドキュメントに追加してもらえるよう努力します。 ありがとうございます。

どのように解決するのですか?

名前を制御したいプロパティを [JsonProperty] 属性を使用すると、別の名前を指定することができます。

using Newtonsoft.Json;
// ...

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

ドキュメンテーション シリアライズ属性