Json.NETでプロパティ名を変更してシリアライズする

Json.NETでプロパティ名を変更してシリアライズするには、JsonPropertyAttributeを使います。

JsonPropertyAttributeのコンストラクタにプロパティ名を渡します。

class User {
    [JsonProperty("first_name")]
    public string FirstName { get; set; }

    [JsonProperty("last_name")]
    public string LastName { get; set; }
}

で、シリアライズしてみると。

var user = new User {
    FirstName = "悟空",
    LastName = "孫"
};

// シリアライズ
var settings = new JsonSerializerSettings {
    Formatting = Formatting.Indented
};
var json = JsonConvert.SerializeObject(user, settings);
Console.WriteLine(json);
// {
//   "first_name": "悟空",
//   "last_name": "孫"
// }

もちろんデシリアライズもOKでした。