2017-09-02 81 views
1

我有一個龐大的json文件,我解析。但是,解析它時遇到問題。 有看起來類似文件中的字段:將Json對象轉換成自定義對象

"pageTitle": { 
"en": "Some content here...." 
}, 

我店這是一本字典:

[JsonProperty("pageTitle")] 
    public Dictionary<string, string> PageTitle { get; set; } 

但有時該字段爲空,而當它是Json.Net方法

ToObject<MyCustomClass>() 

嘗試轉換pageTitle時失敗,因爲它看起來是空數組而不是對象。是否有JsonPropery使它忽略這個空陣列並繼續?

回答

0

如果希望忽略null值,那麼很可能如下來裝飾屬性:

[JsonProperty("pageTitle", NullValueHandling = NullValueHandling.Ignore)] 

如果JSON字符串被解析爲空數組[]或無效的輸入,則可能通過擴展抽象類,JsonConverter或延長在Newtonsoft.Json.Converters內置的轉換器之一編寫自定義轉換器和調用它:

var obj = JsonConvert.DeserializeObject<MyCustomClass>(jsonString, new CustomConverter()); 

OR

拉手如下反序列化過程中發生異常:

var obj = JsonConvert.DeserializeObject<MyCustomClass>(json, new 
         JsonSerializerSettings 
         { 
          Error = HandleError 
         }); 

處理程序:

private static void HandleError(object sender, ErrorEventArgs e) 
    { 
     // Get the error message using 'e.ErrorContext.Error.Message' 
     // e.ErrorContext.OriginalObject will give you the object/property that failed to deserialze 
     e.ErrorContext.Handled = true; 
    }