Как получить имя родительского ключа для всех sub json, у которого есть параметр с именем ключа "$oid"?
{
"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();