簡體   English   中英

如何檢查動態 JObject 中的 null 值?

[英]How to check null values in dynamic JObject?

我有一個JObject變量UserPreferences (C#); 它將包含基於請求的動態鍵值對

保證密鑰存在。 我只想檢查鍵是否為空值,以便我可以拋出“缺少字段”異常,然后用戶可以填寫字段並再次發送請求。 我怎樣才能實現這一點(最好通過對 UserPreferences object [下] 中存在的鍵進行迭代)? controller 接收請求並將其映射到用戶 class object。 如何檢查任何鍵中是否有空值?

我的請求將采用以下形式:

{
 "UserName":"Mark",
 "UserPreferences":{
    "Section1":"Do",
    "Section2":"Delete"
  }
}

或者也可以是:

{
     "UserName":"Mark",
     "UserPreferences":{
        "Section1":"Do",
        "Section2":"Delete",
        "Section4":"Add_Name" 
      }
 }

因此,請求可以在 UserPreferences object 中包含動態數量的鍵值對(更多部分及其值); 但有時用戶可能會將該字段留空。 因此,當請求到達時,它將如下所示:

 {
       "UserName":"Mark",
       "UserPreferences":{
          "Section1":"",
          "Section2":""
          }
  }

或者看起來像這樣(另一個例子):

 {
       "UserName":"Mark",
       "UserPreferences":{
          "Section1":"Do",
          "Section2":""
          }
  }

這是我處理請求的 class 的樣子:

public class User
{
 public string User{get;set;}
 public JObject UserPreferences{get;set;}
}

請注意,我不想使用任何其他結構(如字典)來完全替代上面使用的 JObject 結構。

UserPreferences解析為Dictionary<string, string>並檢查字典值是否不是 null:

public class User
{
    public string UserName { get; set; }
    public Dictionary<string, string> UserPreferences { get; set; }
}

User u = ... // parse json
if(u.UserPreferences.Values.Any(v => v == null)) 
{
    ...
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM