3
在我的c#應用程序中,我使用json.net
庫來處理jsons。
我的情況:在json.net中錯誤類型導致的反序列化時忽略屬性
物業:
[JsonProperty("my_test_property_json_key", NullValueHandling = NullValueHandling.Ignore)]
public int[] MyTestProperty{ get; set; }
當我的則此屬性JSON的樣子:
[0,1,2,3,4,5]
所有的偉大工程。 但可能發生的情況,當我有這樣錯誤的JSON值:
[[0,1,2,3]]
而且在這種情況下,我得到異常:
[Newtonsoft.Json.JsonReaderException] = {"Error reading integer. Unexpected token: StartArray. Path 'my_test_property_json_key[0]', line 1, position 3250."}
在這種情況下,正確的行爲應該是:
返回空int[]
。
當我錯誤的json(屬性存在,但它是一個不同的類型)時,我怎麼能忽略這個屬性?注意:我的json太大(很多其他屬性) - 我不能用默認數據重新創建它(我不能丟失數據)。
爲什麼在'WriteJson'中拋出異常? '也可以轉換'(( – jimpanzer
@ jimpanzer,這只是一個基本的例子,我沒有打算完全實現它。)如果你想要序列化和反序列化,只需要實現WriteJson和CanConvert。 –
@jimpanzer,我更新了答案, –