自分のサイトのこのリンクからもわかるように(http://james.newtonking.com/archive/2009/10/23/efficient-json-with-json-net-reducing-serialized-json-size .aspxの)私は[デフォルト()]は@ sirthomasの答えに
public class Invoice
{
public string Company { get; set; }
public decimal Amount { get; set; }
// false is default value of bool
public bool Paid { get; set; }
// null is default value of nullable
public DateTime? PaidDate { get; set; }
// customize default values
[DefaultValue(30)]
public int FollowUpDays { get; set; }
[DefaultValue("")]
public string FollowUpEmailAddress { get; set; }
}
Invoice invoice = new Invoice
{
Company = "Acme Ltd.",
Amount = 50.0m,
Paid = false,
FollowUpDays = 30,
FollowUpEmailAddress = string.Empty,
PaidDate = null
};
string included = JsonConvert.SerializeObject(invoice,
Formatting.Indented,
new JsonSerializerSettings { });
// {
// "Company": "Acme Ltd.",
// "Amount": 50.0,
// "Paid": false,
// "PaidDate": null,
// "FollowUpDays": 30,
// "FollowUpEmailAddress": ""
// }
string ignored = JsonConvert.SerializeObject(invoice,
Formatting.Indented,
new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore });
// {
// "Company": "Acme Ltd.",
// "Amount": 50.0
// }
これは動作しますJsonConvert.SerializeObject(myObjectという、Newtonsoft.Json.Formatting.None、新しいJsonSerializerSettings {NullValueHandling = NullValueHandling.Ignore})。 – Amit
詳細:http://goo.gl/c8Bk1 – Amit
それは私のために働いたが、最後の1つについてエラーを示したので、私は 'JsonSerializerSettings'を' JsonSerializerSettings'で使用しなければならなかった。 – Yazan