2017-07-12 4 views
0

でシリアライズ(XmlSerializerを)時のJSONファイルを受信して​​いる私は私のコードでやっているとを通して私のカスタムオブジェクトにそれをデシリアライズ:直列化復元時にNULL値を充填(.NET JSON)やC#

JsonConvert.DeserializeObject<MyObjectType>(response); 

でこの時点で、MyObjectには、いくつかの文字列プロパティをNULLに設定しなければならないと私は使用してXMLへのこのオブジェクトをシリアル化します:

XmlSerializer serializer = new XmlSerializer(typeof(MyObjectType)); 
     var XmlCase = String.Empty; 

     using (var stringWriter = new StringWriter()) 
     { 
      using (XmlWriter xmlWriter = XmlWriter.Create(stringWriter)) 
      { 
       serializer.Serialize(xmlWriter, MyObject); 
       XmlCase = stringWriter.ToString(); 
      } 
     } 

は、私はどちらかが空の文字列で、これらのNULL値を置き換えるされたい(おそらく私がこれをしたいと思いますJsonConvert.Dの間に何らかの設定で起こる) eserializeObjectまたはXMLシリアル化中にこれが起こりたいと思います。どちらの場合でも避けたいのは、NULL値を検索するオブジェクトを解析することです。

答えて

1

あなたが現在nullの文字列にデフォルト「空」の値を指定する必要があります:まず

string myString = ""; 

そして、あなたはnull値を無視して、フィールドを埋めるためにJSON(デ)シリアライザーを指示する必要がありますそれらのデフォルト値は設定オブジェクトを使用します。

var settings = new JsonSerializerSettings() { 
    NullValueHandling = NullValueHandling.Ignore, 
    DefaultValueHandling = DefaultValueHandling.Populate, 
} 
JsonConvert.DeserializeObject<MyObject>(Response, settings); 

それは今あなたが望むように動作する必要があります。