該方法的檔案中JsonSerializer.Deserialize顯示的回傳型別都將回傳型別顯示為可為空。
如果您查看MS 檔案中的反序列化示例,您會發現它們不一致,因為第一個和第三個將回傳型別指定為可為空...
WeatherForecast? weatherForecast =
JsonSerializer.Deserialize<WeatherForecast>(jsonString);
...而第二個示例錯過了?,這意味著它不可為空。
通過實驗,似乎只要您提供有效的 JSON(否則您會得到例外),那么回傳值始終是指定型別的非空物件。如果屬性名稱不匹配,則回傳的物件將具有這些屬性的默認值,但您永遠不會得到空參考 - 或者至少,我找不到方法。
任何人都可以澄清?是否存在方法可以回傳null而不拋出例外的情況?如果不是,為什么回傳型別指定為可為空?
謝謝
uj5u.com熱心網友回復:
是的,使用 JSON 序列化程式決議有效 "null"的 JSON 必須回傳null.
WeatherForecast? weatherForecast =
JsonSerializer.Deserialize<WeatherForecast>("null");
請注意,其他有效的 JSON字串(如"123"、、、"\"bob\"")"[]"應該會導致例外,因為它們都不代表有效的物件。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/476745.html
上一篇:如何遞回獲取每個專案的級別?
