91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

解決屬性值反序列化失敗的問題

發布時間:2020-09-08 12:00:36 來源:億速云 閱讀:712 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關解決屬性值反序列化失敗的問題,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

使用方法:

InternalRecommendRequestFormModel formData = Newtonsoft.Json.JsonConvert.DeserializeObject<InternalRecommendRequestFormModel>(dataInput);

其中:InternalRecommendRequestFormModel是一個復雜的對象,屬性中又包含其他對象和屬性。  dataInput是接口傳入的JSON字符串,它是另一個接口返回的InternalRecommendRequestFormModel對象,當然數據在傳遞的過程中一些屬性發生了變化,按理應該可以正常反序列化,但是在使用的時候卻在反序列化是報錯,無法發序列化其中一個屬性。

那么我們遇到這種復雜的反序列化成對象時該怎么辦?

首先:分析知道,報錯是由于個別屬性發序列化失敗導致,那么只要可以將這部分屬性清空或者移除該屬性的序列化內容,就可以了。

那么:如何在序列化的JSON字符串移除掉一部分屬性呢?

我們首先想到的是,字符串的替換,清空,截取等等,但是想想容易出錯。能不能現將這個字符串變成一個可操作的對象(當然不是InternalRecommendRequestFormModel),然后干掉或者清空某個對象后再轉換成我們想要的對象?  其實我一開想想到object,不是任意對象都是object嗎?

開始嘗試:

object formData = Newtonsoft.Json.JsonConvert.DeserializeObject<object>(dataInput);

得到對象如下:

解決屬性值反序列化失敗的問題

在調試中發現:

((Newtonsoft.Json.Linq.JObject)(JsonConvert.DeserializeObject<object>(dataInput))).ChildrenTokens[46] ,我是可以拿到屬性值的。

也就是說,通過上述代碼可以看出,反序列化的object對象被轉換為了:Newtonsoft.Json.Linq.JObject 對象,  這個對象就是微軟給我們提供的JSON對象的一個基類,也就是說,只要你是一個對象,如果被json序列化后,它就可以幫你反序列化回來。

代碼改進為:

InternalRecommendRequestFormModel formData = new InternalRecommendRequestFormModel();Newtonsoft.Json.Linq.JObject obj = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(dataInput);
obj.Remove("opinions");
formData = obj.ToObject<InternalRecommendRequestFormModel>();

總結:

只要JSON字符串是一個對象,當我們直接反序列化遇到,字符串中的部分屬性值不符合要求時,我們可以先將對象轉為:JObject,對對象屬性修正后,再使用JObject提供的ToObject<T>()再轉為需要轉換的對象

Newtonsoft.Json.Linq.JObject obj = JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(dataInput);

關于解決屬性值反序列化失敗的問題就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大理市| 永昌县| 集贤县| 阜南县| 弥渡县| 黑水县| 天长市| 定南县| 文安县| 徐水县| 综艺| 科技| 肇庆市| 蚌埠市| 景东| 江津市| 张家界市| 垦利县| 罗平县| 大港区| 新疆| 赫章县| 赣榆县| 当雄县| 平定县| 麻栗坡县| 鄂尔多斯市| 南充市| 会东县| 和田市| 阿勒泰市| 吉木乃县| 稷山县| 华阴市| 深圳市| 榕江县| 济南市| 高淳县| 义乌市| 新河县| 北宁市|