###目的
JSON.NETを使用してserializeする際にプロパティに対して規定値を設定したい。
###問題
serializeして結果を見てみると規定値が設定してあるはずのプロパティがnullになっている。
nullではなく規定値を設定したい。
###ソースコード
UserModel.cs
C#
1using Newtonsoft.Json; 2using System.ComponentModel; 3 4namespace JsonTest 5{ 6 [JsonObject("user")] 7 public class UserModel 8 { 9 [JsonProperty("id")] 10 public int UserID { get; set; } 11 [JsonProperty("name")] 12 public string Username { get; set; } 13 [JsonProperty("bloodType", DefaultValueHandling = DefaultValueHandling.Include)] 14 [DefaultValue("A")] 15 public string BloodType { get; set; } 16 } 17}
Program.cs
C#
1using System; 2 3using Newtonsoft.Json; 4 5namespace JsonTest 6{ 7 class Program 8 { 9 static void Main(string[] args) 10 { 11 DeserializeSample(SerializeSample()); 12 } 13 14 static string SerializeSample() 15 { 16 var data = new UserModel(); 17 data.UserID = 100; 18 data.Username = "太郎"; 19 20 string serializedJson = Newtonsoft.Json.JsonConvert.SerializeObject(data); 21 22 Console.Write($"{serializedJson}\n"); 23 24 return serializedJson; 25 } 26 27 static void DeserializeSample(string jsonstring) 28 { 29 UserModel model1 = JsonConvert.DeserializeObject<UserModel>(jsonstring); 30 31 Console.Write($"model1.UserID = {model1.UserID}\n"); 32 Console.Write($"model1.Username = {model1.Username}\n"); 33 Console.Write($"model1.BloodType = {model1.BloodType}\n"); 34 } 35 } 36} 37
###実行結果
{"id":100,"name":"太郎","bloodType":null} model1.UserID = 100 model1.Username = 太郎 model1.BloodType =
bloodTypeがAになってほしいのですが...。
###開発環境
- OS Windows10 professional x64
- IDE VisualStudio2017 community
- 言語 C#
- プロジェクト形式 コンソールアプリ(.NET framework)
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/05/16 02:36
2017/05/16 02:44
2017/05/16 03:00
2017/05/16 03:08
2017/05/16 03:31
2017/05/16 04:51
2017/05/16 05:16
2017/05/16 06:05