Я извиняюсь за возможно глупый вопрос, но ...Зачем мне нужно звонить. First() в foreach/Select() в Json.Net?
У меня есть следующие JSON (упрощенный, очевидно):
{ "rgDescriptions":{ "32895951_0":{ "id":"32895951", "name":"Cat", }, "61694787_0":{ "id":"61694787", "name":"Dog", } } }
В качестве простого примера моей проблемы, это работает:
jsonObject["rgDescriptions"]["32895951_0"]["name"]
Но это вовсе не так:
jsonObject["rgDescriptions"].First()["name"]
//InvalidOperationException: Cannot access child value on Newtonsoft.Json.Linq.JProperty.
Для того, чтобы заставить его работать, мне нужно, чтобы изменить его к этому:
jsonObject["rgDescriptions"].First().First()["name"]
Это не имеет никакого смысла для меня, так как первый объект в jsonObject["rgDescriptions"]
должно быть эквивалентно ["32895951_0"]
. Оператор []
и .First()
возвращают JToken, поэтому я действительно не понимаю, почему ["rgDescriptions"].First()
не работает или что он действительно должен представлять.
Может ли кто-нибудь объяснить мне, что происходит?
Я не использую 'JToken.First', я вызываю' IEnumerable.First() '- то есть он совпадает с первым элементом в цикле' foreach'. В этом случае у меня не было бы причин называть 'Next',' Prev' и т. Д. –
Ответ тот же. 'IEnumerable' будет перечислять дочерние элементы' JToken'. Дети 'JObject' являются объектами' JProperty'. Ребенок 'JProperty' - это его значение. –