2016-08-18 2 views
0

Hey alles, was ich habe folgendes json string:JSON DeserializeObject mit Klasse 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 
} 

Dass ich versuche, die folgenden Eigenschaften zu erhalten:

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

Der C# -Code ich habe, ist:

Natürlich sind die Daten ["Metadaten"] ["Musik"]. Label ist ca Verwenden Sie einen Fehler, aber ich bin mir nicht sicher, warum?

Zusätzliche Informationen: anwenden kann nicht Indizierung mit [], um einen Ausdruck des Typs 'mR.musicJsonReturn.RootObject'

enter image description here

+1

Versuchen Sie 'data.metadata.music [0] .label' – DavidG

+0

Sorge zu teilen, warum unten gewählt ??? – StealthRT

+0

War ich nicht, aber vielleicht weil es ziemlich offensichtlich ist, wie man auf den Wert vom Screenshot zugreift? – DavidG

Antwort

3

Versuchen:

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

Sie don‘ t arbeite mit einem Array, aber einem Objekt.

Und niemals dynamisch verwenden.

+1

"Nie" dynamisch verwenden ?! Es gibt viele Male, wenn es ziemlich nützlich ist. – DavidG

+0

Es gibt wenige Fälle, in denen Sie dynamische .... – Fabian

+0

genau verwenden müssen, also warum haben Sie "nie" gesagt? – DavidG

Verwandte Themen