【发布时间】:2020-06-13 19:50:32
【问题描述】:
我有一个JObject 变量UserPreferences (C#);它将根据请求包含动态键值对。
保证密钥存在。我只想检查键是否为空值,以便我可以抛出 "Missing fields" 异常,然后用户可以填写字段并再次发送请求。我怎样才能实现这一点(最好通过对 UserPreferences 对象 [下面] 中存在的键进行迭代)? 控制器接收请求并将其映射到用户类对象。如何检查任何键中是否有空值?
我的请求将采用以下形式:
{
"UserName":"Mark",
"UserPreferences":{
"Section1":"Do",
"Section2":"Delete"
}
}
也可以是这样的:
{
"UserName":"Mark",
"UserPreferences":{
"Section1":"Do",
"Section2":"Delete",
"Section4":"Add_Name"
}
}
因此,请求可以在 UserPreferences 对象中包含动态数量的键值对(更多部分及其值);但有时用户可能会将该字段留空。所以,当请求到达时,它看起来像这样:
{
"UserName":"Mark",
"UserPreferences":{
"Section1":"",
"Section2":""
}
}
或者看起来像这样(另一个例子):
{
"UserName":"Mark",
"UserPreferences":{
"Section1":"Do",
"Section2":""
}
}
这是我处理请求的类的样子:
public class User
{
public string User{get;set;}
public JObject UserPreferences{get;set;}
}
请注意,我不想使用任何其他结构(如字典)来完全替代上面使用的 JObject 结构。
【问题讨论】:
-
请分享你的代码
-
不清楚你卡在哪里,你提到了
jsonVar变量、User类型和示例请求 JSON,但请解释它们之间的关系。你能分享一个minimal reproducible example吗?不过,Checking for empty or null JToken in a JObject 可能会回答你的问题。