亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

反序列化時如何檢查JSON字符串中是否存在屬性

反序列化時如何檢查JSON字符串中是否存在屬性

C#
jeck貓 2022-10-15 14:36:07
我有這個反序列化 JSON 字符串的代碼?,F在我們可以看到 JSON 字符串具有例如以下屬性:(請注意 CORS 屬性存在于“has”屬性下,因此我們需要在我相信之前檢查“has”是否也存在)CORS我的問題是。有時,JSON 字符串中可能會缺少此屬性。正如所見,我在使用 try/catch 塊的地方使用下面的代碼。因為如果缺少 CORS 屬性,我會得到一個異常,但異常的性能非常昂貴,現在我在 30 個屬性上使用 try/catch 塊。然后我想知道如果 CORS 屬性首先存在,我們如何檢查代碼?當 CORS 不存在時,下面的代碼行 WITHOUT try/catch 會給出此錯誤:無法對空引用執行運行時綁定String corsvalue = "";try { corsvalue = deserializedTicker.has.CORS.ToLower(); } catch { }JSON字符串:{   "id": "hello",   "name": "Hello",  "has": {     "CORS": false,    "CORS2": true  },  "has2": {     "CORS3": false,    "CORS4": true  }}完整代碼:String JSONstring = "{ \"id\": \"hello\", \"name\": \"Hello\", \"has\": { \"CORS\": false, \"CORS2\": true }, \"has2\": { \"CORS3\": false, \"CORS4\": true } }\";"var deserializedTicker = JsonConvert.DeserializeObject<JsonInfo>(JSONstring);String corsvalue = "";try { corsvalue = deserializedTicker.has.CORS.ToLower(); } catch { }public class JsonInfo {  public string id { get; set; }  public string name { get; set; }  public JsonHasInfo has { get; set; }  public JsonHas2Info has2 { get; set; }}public class JsonHasInfo{  public bool CORS { get; set; }  public bool CORS2 { get; set; }}public class JsonHas2Info{  public bool CORS3 { get; set; }  public bool CORS4 { get; set; }}
查看完整描述

1 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

干得好:


String JSONstring = "{ \"id\": \"hello\", \"name\": \"Hello\", \"has\": { \"CORS\": false, \"CORS2\": true }, \"has2\": { \"CORS3\": false, \"CORS4\": true }}";


            JObject jobject = JObject.Parse(JSONstring);


            JToken cors = jobject.SelectToken("has.CORS");

            if (cors != null)

            {

                JsonInfo myEvent = jobject.ToObject<JsonInfo>();

            }


查看完整回答
反對 回復 2022-10-15
  • 1 回答
  • 0 關注
  • 172 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號