###目的
JSON.NETを使用してserializeする際にプロパティに対して規定値を設定したい。
###問題
serializeして結果を見てみると規定値が設定してあるはずのプロパティがnullになっている。
nullではなく規定値を設定したい。
###ソースコード
UserModel.cs
C#
using Newtonsoft.Json; using System.ComponentModel; namespace JsonTest { [JsonObject("user")] public class UserModel { [JsonProperty("id")] public int UserID { get; set; } [JsonProperty("name")] public string Username { get; set; } [JsonProperty("bloodType", DefaultValueHandling = DefaultValueHandling.Include)] [DefaultValue("A")] public string BloodType { get; set; } } }
Program.cs
C#
using System; using Newtonsoft.Json; namespace JsonTest { class Program { static void Main(string[] args) { DeserializeSample(SerializeSample()); } static string SerializeSample() { var data = new UserModel(); data.UserID = 100; data.Username = "太郎"; string serializedJson = Newtonsoft.Json.JsonConvert.SerializeObject(data); Console.Write($"{serializedJson}\n"); return serializedJson; } static void DeserializeSample(string jsonstring) { UserModel model1 = JsonConvert.DeserializeObject<UserModel>(jsonstring); Console.Write($"model1.UserID = {model1.UserID}\n"); Console.Write($"model1.Username = {model1.Username}\n"); Console.Write($"model1.BloodType = {model1.BloodType}\n"); } } }
###実行結果
{"id":100,"name":"太郎","bloodType":null} model1.UserID = 100 model1.Username = 太郎 model1.BloodType =
bloodTypeがAになってほしいのですが...。
###開発環境
- OS Windows10 professional x64
- IDE VisualStudio2017 community
- 言語 C#
- プロジェクト形式 コンソールアプリ(.NET framework)
まだ回答がついていません
会員登録して回答してみよう