NullValueHandling
は、プロパティのnull値と関連しており、オブジェクト自体ではありません。
public class ExampleClass
{
public string NullProperty { get; set; }
}
そして、あなたはそれをシリアル化:あなたは以下の例がある場合たとえば
は、
var obj = new ExampleClass();
var jsons = JsonConvert.SerializeObject(obj, new JsonSerializerSettings() { NullValueHandling = NullValueHandling.Ignore });
を次にNullProperty
は無視され、あなたは{}
を取得します。
編集
JSON(https://tools.ietf.org/html/rfc7159)のRFCが明示的に次のように述べているので "NULL" が返される理由は、
A JSON値は、オブジェクト、配列、数値でなければなりません
の、または文字列、あるいは1次の三つリテラル名:
偽ヌル真
リテラル名は小文字である必要があります。その他のリテラル名は
です。
値=偽/ヌル/真/オブジェクト/配列/数/列
偽=%x66.61.6c.73.65。偽
null =%x6e.75.6c.6c; null
true =%x74.72.75.65;真
編集:
私はもともと周りに仕事を持っていましたが、私は本当にあなたがRFCに従うべきだと思うので、私はそれを削除しました。 RFCは、NULLオブジェクトが "null"で表されなければならないことを明示しているため、回避することはお勧めできません。
RFCにとどまるために、 "null"を格納するか、NULLではなく "NULL"を返します。あなたが "null"をデシリアライズすると、NULL値が返されます。
〜乾杯
RFCに違反しているので、これは良い答えではありません。私はそれが正しい答えとしてどのようにマークされたのか分かりません。 – Rogala