2013-12-07 6 views
6

ich diesen einzigen Json analysiert:Parse ein JSON-Array in einer Klasse in C#

{ 
    "text": "Sample Text", 
    "id": 123456789, 
    "user": { 
     "name": "ExampleUser", 
     "id": 123, 
     "screen_name": "ExampleUser" 
    }, 
    "in_reply_to_screen_name": null, 
    } 

meiner C# -Klasse RootObject:

public class User 
{ 
    public string name { get; set; } 
    public int id { get; set; } 
    public string screen_name { get; set; } 
} 

public class RootObject 
{ 
    public string text { get; set; } 
    public long id { get; set; } 
    public User user { get; set; } 
    public object in_reply_to_screen_name { get; set; } 
} 

wie folgt aus:

RootObject h = JsonConvert.DeserializeObject<RootObject>(string); 

Alle davon funktionierte perfekt, aber jetzt würde ich gerne ein Array aller Präzedenzfälle json Objekt analysieren.

Zum Beispiel das Json Array:

[ 
    { 
    "text": "Sample Text", 
    "id": 123456789, 
    "user": { 
     "name": "ExampleUser", 
     "id": 123, 
     "screen_name": "ExampleUser" 
    }, 
    "in_reply_to_screen_name": null, 
    }, 
    { 
    "text": "Another Sample Text", 
    "id": 101112131415, 
    "user": { 
     "name": "ExampleUser2", 
     "id": 124, 
     "screen_name": "ExampleUser2" 
    }, 
    "in_reply_to_screen_name": null, 
    } 
] 

ich erstellen eine andere Klasse:

public class ListRoot { 
     public List<RootObject> status { get; set; } 
    } 

und verwendet dann die gleiche Methode:

ListRoot h = JsonConvert.DeserializeObject<ListRootObject>(string); 

Aber es funktioniert nicht. Weißt du, wie kann ich dieses JSON-Array zu einer C# -Klasse analysieren?

Antwort

10

Die JSON Sie arbeiten, wenn Sie es einfach als ein deserialisieren List<RootObject>:

var h = JsonConvert.DeserializeObject<List<RootObject>>(string); 

Oder ein Array:

var h = JsonConvert.DeserializeObject<RootObject[]>(string); 

Wenn Sie eine ListRoot deserialisieren möchten, würde die JSON müssen Sieht so aus:

{ 
    "status": [ 
     { 
      "text": "Sample Text", 
      ... 
     }, 
     { 
      "text": "Another Sample Text", 
      ... 
     } 
    ] 
} 
+0

Ja, es funktioniert, vielen Dank! – user2505650