2012-08-02 80 views
0

我有類從JSON反序列化處理反序列化錯誤

class SeeSharp 
{ 
    public int Number; 
} 

良好的JSON是水木清華像

{數量:1}

錯誤JSON它來自PHP是

{Number:false}

我用下面的方法來處理反序列化錯誤http://blog.mrlacey.co.uk/2012/03/debugging-deserialization-errors-in.html

失敗時閱讀字符串類型的成員/ INT /雙/布爾/等等,我想設置它的價值,這種類型和標誌的默認是錯誤處理。

目前,JsonSerializationSettings.Error委託人不允許將值設置爲失敗的成員,並且不顯示有關失敗成員類型的任何信息。

如果有一個選項可以另一種方式來做到這一點,將是很高興知道它。

+0

我實際上有很多類來反序列化。 – 2012-08-02 17:52:25

回答

0

你能用這個課嗎?

public class SeeSharp 
{ 
    public string Number 
    { 
     get 
     { 
      return _number.ToString(); 
     } 

     set 
     { 
      if (!int.TryParse(value, out _number)) 
       _number = default(int); 
     } 
    } 

    public int _Number { get; set; } 
} 

JsonConvert將使用字符串屬性Number設置數據,它處理解析本身。然後在您的代碼中使用屬性_Number作爲int

+1

是的,我可以,但我有很多這樣的課程和領域。以這種方式裝飾它們需要時間。會計劃B :) – 2012-08-02 17:51:55