首页 > 解决方案 > 如何获取具有键名“$oid”的参数的所有子json的父键名?

问题描述

{
"id":{"$oid":5c9238241ea62ed5d516fcae},
"createdOn" : ISODate("2019-03-19T03:50:00.000Z"),
"version" : "1.0",
"ruleMasterID":{"$oid":5c90df381ea62ed5d5138266},
}

我有一个这样的json。我想要“$oid”存在的键名作为子 json 中的键。所以,在这个 json id 和 ruleMasterID 是预期的输出。谁能告诉我如何编写代码以在 C# 中获得相同的效果?

标签: c#jsonmongodbjobjectformatter

解决方案


如果您不想要递归搜索,那么您可以简单地执行 LINQ 语句:

JObject jsonObject = JObject.Parse(json);
var keys = (from x in jsonObject.Children() where x.Children().Any(y => (y as JObject)?.ContainsKey("$oid")==true) select x.Path).ToList();

推荐阅读