[英]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.