Estou tentando determinar como acessar os dados que estão em meu JObject e não consigo determinar como usá-los.
JObject Object = (JObject)Response.Data["my_key"];
Posso imprimi-lo no console fazendo Console.WriteLine (Object) e vejo os dados, parece:
{
"my_data" : "more of my string data"
...
}
Mas eu NÃO tenho ideia de como apenas iterar / enumerar através dele, alguém tem alguma ideia? Eu estou perdida agora.
((IEnumerable<KeyValuePair<string, JToken>>)obj).Select(...)
vez do velhoobj.Select(...)
; ou pelo menos é o que encontrei uma parte do meu código.obj
tinha tipoJObject
; masJObject
parece ter problemas semelhantes adynamic
. O compilador não pode inferir os argumentos de tipo para.Select
. Posso explicá-los explicitamente,obj.Select<KeyValuePair<string, JToken>, (result type)>(...)
também funciona para mimJObject
implementa ambosIEnumerable<KeyValuePair<string, JToken>>
eIEnumerable<JToken>
(indiretamente por meio deJContainer
).JToken value
para iterar no próximo conjunto de pares?JObjects podem ser enumerados por meio de objetos JProperty lançando-os em um JToken :
Se você tiver um JObject aninhado dentro de outro JObject, não será necessário transmitir porque o acessador retornará um JToken:
fonte
obj.Properties().Select(p => p.Name + ": " + p.Value)
.A resposta não funcionou para mim. Não sei como conseguiu tantos votos. Embora tenha ajudado a me apontar em uma direção.
Esta é a resposta que funcionou para mim:
fonte
Para pessoas como eu, viciados em linq , e com base na resposta de svick , aqui está uma abordagem linq:
Agora você pode fazer expressões linq como:
Ou apenas:
Ou este para iterar sobre todos os dados:
fonte