2016-08-18 1 views
0

Hey tout ce que j'ai la chaîne JSON suivante:JSON DeserializeObject avec classe RootObject

{ 
    "status":{ 
     "msg":"Success", 
     "code":0, 
     "version":"1.0" 
    }, 
    "metadata":{ 
     "music":[ 
     { 
      "external_ids":{ }, 
      "label":"Atlantic Records", 
      "release_date":"2010-09-13", 
      "album":{ 
       "name":"Passion, Pain & Pleasure" 
      }, 
      "title":"Bottoms Up", 
      "duration_ms":"242013", 
      "genres":[ 
       { 
        "name":"R&B\\Soul\\Funk" 
       } 
      ], 
      "acrid":"63b14329c3beafe35cf08b144a2b4a31", 
      "result_from":3, 
      "artists":[ 
       { 
        "name":"Trey Songz" 
       } 
      ] 
     } 
     ], 
     "timestamp_utc":"2016-08-18 13:56:40" 
    }, 
    "result_type":3 
} 

que je suis en train d'obtenir les propriétés suivantes:

label 
album > name 
title 
duration_ms 
genres > name 
artists > name 

Le code C# J'est:

dynamic data = Newtonsoft.Json.JsonConvert.DeserializeObject<mReconize.musicJsonReturn.RootObject>(json); 
Console.WriteLine(data["metadata"]["music"].label); 

Naturellement le données ["metadata"] ["music"]. Label est ca en utilisant une erreur mais je ne suis pas sûr de savoir pourquoi?

Informations complémentaires: ne peut pas appliquer l'indexation avec [] à une expression de type 'mR.musicJsonReturn.RootObject'

enter image description here

+1

Essayez 'data.metadata.music [0] .label' – DavidG

+0

Souciez-vous de nous expliquer pourquoi nous avons voté ??? – StealthRT

+0

Ce n'était pas moi, mais peut-être parce que c'est assez évident comment vous accédez à la valeur de la capture d'écran? – DavidG

Répondre

3

Essayez:

Console.WriteLine(data.metadata.music[0].label); 

Vous n » t travailler avec un tableau mais un objet.

Et ne jamais utiliser dynamique.

+1

"jamais" utiliser dynamique ?! Il y a plein de moments où c'est très utile. – DavidG

+0

Il y a peu de cas où vous devez utiliser dynamic .... – Fabian

+0

Exactement, alors pourquoi avez-vous dit "jamais"? – DavidG