J'ai du JSON qui ressemble à ceci
[
{
"MobileSiteContent": {
"Culture": "en_au",
"Key": [
"NameOfKey1"
]
}
},
{
"PageContent": {
"Culture": "en_au",
"Page": [
"about-us/"
]
}
}
]
J'analyse ceci comme un JArray:
var array = JArray.Parse(json);
Ensuite, je boucle sur le tableau:
foreach (var content in array)
{
}
content
est un JToken
Comment puis-je récupérer le "nom" ou la "clé" de chaque article?
Par exemple, "MobileSiteContent" ou "PageContent"
JToken
est la classe de base pour JObject
, JArray
, JProperty
, JValue
, etc. Vous pouvez utiliser le Children<T>()
méthode pour obtenir une liste filtrée des enfants d'un JToken appartenant à un certain type, par exemple JObject
. Chaque JObject
possède une collection d'objets JProperty
, accessibles via la méthode Properties()
. Pour chaque JProperty
, vous pouvez obtenir son Name
. (Bien sûr, vous pouvez aussi obtenir le Value
si vous le souhaitez, ce qui est un autre JToken
.)
En réunissant tout cela, nous avons:
JArray array = JArray.Parse(json);
foreach (JObject content in array.Children<JObject>())
{
foreach (JProperty prop in content.Properties())
{
Console.WriteLine(prop.Name);
}
}
Sortie:
MobileSiteContent
PageContent
L'itérateur par défaut pour le JObject est un dictionnaire itérant des paires clé/valeur.
JObject obj = JObject.Parse(response);
foreach (var pair in obj) {
Console.WriteLine (pair.Key);
}
JObject obj = JObject.Parse(json);
var attributes = obj["parent"]["child"]...["your desired element"].ToList<JToken>();
foreach (JToken attribute in attributes)
{
JProperty jProperty = attribute.ToObject<JProperty>();
string propertyName = jProperty.Name;
}