我需要检查json文件中是否存在键名,但我无法弄清楚如何操作。
Json文件:
{
"value": [
{
"from": 1430611201000,
"to": 1430697600000,
"ref": "2015-05-03",
"value": "8.4",
"quality": "Y"
}
],
"updated": 1430726400000,
"parameter": {
"key": "2",
"name": "Lufttemperatur",
"summary": "medelvärde 1 dygn, 1 gång/dygn, kl 00",
"unit": "degree celsius"
},
我认为这是我最接近的,但它总是假的(即使我搜索现有的密钥): 内容是一个JObject。
var searchDate = content.Properties().Select(p => p.Value).Children().Any(p=>p.Contains("quality"));
编辑:我已将关键名称更改为“质量”,以澄清问题。
我还将使用另一个包含密钥“date”而不是“from”和“to”的json文件。分离我想知道的文件是否存在“日期”。
答案 0 :(得分:3)
如果要检查的属性始终属于cargo:run
属性中的项目,则可以这样做:
value
否则,您可能希望创建一个函数,以递归方式检查var isQualityExists =
content["value"].Any(v => ((JObject)v).Properties()
.Any(p => p.Name.Contains("quality"))
);
上是否存在特定的属性名称。
答案 1 :(得分:0)
日期在json中不存在。这就是为什么你会在其中一条评论中提到错误。 如果您要搜索密钥:"到"
if("to" in json_object)
{
//your logic goes here
}