【发布时间】:2019-03-18 17:24:48
【问题描述】:
我有一个 JSON 对象。我想确定它是否只包含一个特定的键。代码如下:
{
"Name": "ThirdParty",
"Categories": [
{ "Name": "Identity" },
{
"Name": "Contact Information",
"Mandatory": true,
"Fields": [
{ "Name": "Phones" },
{ "Name": "Faxes" },
{ "Name": "Emails" }
]
},
{ "Name": "Addresses" },
{ "Name": "Bank Accounts" }
]
}
我想确定每个类别是否仅包含Name 键。使用this answer,我相信解决方案应该是这样的:
foreach(dynamic category in jObject.Categories)
{
var result = category.Children().Except(/* What goes here? */).Any();
}
但是Except() 方法中究竟应该包含什么?有没有更好的方法来做到这一点?谢谢。
注意:这不是以下问题的重复:
How to determine if a Javascript object has only one specific key-value pair? (我的问题是关于 C#,而不是 JavaScript)。
Determining whether a JSON object contains a specific fieldname in jQuery(我的问题是关于 C#,而不是 jQuery,这与对象中是否存在“字段名”无关。而是关于键是否是 only存在于对象中)。
【问题讨论】:
-
为什么投反对票?如何改进问题?
-
@dbc - 谢谢。我已经编辑了这个问题以满足您的建议。现在可以了吗?
-
@Sipo - 好吧,我不明白为什么有人会认为这是这些问题的重复,因为语言不同。但是,这样肯定更好。
-
所以如果我猜对了,您的结果将是名称为“身份”、“地址”和“银行账户”的类别?
-
@dbc - 谢谢。我经常发生这种情况,人们只阅读了标题并匆忙将问题标记为重复。由于我们不应该在标题中放置标签,因此我没有在标题中指定这个问题是关于 C# 的。这就是为什么我首先将便笺放在顶部的原因,这样人们就不会无缘无故地将其标记为重复。
标签: c# json linq json.net except