Как получить имя родительского ключа для всех вложенных json, у которых есть параметр с именем ключа «$ oid»?

#c# #json #mongodb #jobjectformatter

#c# #json #mongodb #jobjectformatter

Вопрос:

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

у меня есть json, подобный этому. я хочу имя ключа, где «$ oid» существует как ключ в вложенном json.
итак, в этом json id и ruleMasterID являются ожидаемым результатом.
кто-нибудь может мне сказать, как написать код, чтобы получить то же самое в C #?

Ответ №1:

Если вы не хотите рекурсивный поиск, то вы могли бы просто выполнить инструкцию 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();