Парсить JSON-массив в класс В C#
Я проанализировал этот единственный Json:
{
"text": "Sample Text",
"id": 123456789,
"user": {
"name": "ExampleUser",
"id": 123,
"screen_name": "ExampleUser"
},
"in_reply_to_screen_name": null,
}
к моему классу C# 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; }
}
такой :
RootObject h = JsonConvert.DeserializeObject<RootObject>(string);
все это работало отлично, но теперь я хотел бы проанализировать массив всех прецедентных объектов json.
например, этот массив Json:
[
{
"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,
}
]
Я создаю другой класс:
public class ListRoot {
public List<RootObject> status { get; set; }
}
и затем использовал тот же метод:
ListRoot h = JsonConvert.DeserializeObject<ListRootObject>(string);
но это не работает. Ты знаешь, как я могу? разобрать этот массив Json на класс c#?
1 ответов
JSON-файл, который у вас будет работать, если вы просто десериализовать его как List<RootObject>
:
var h = JsonConvert.DeserializeObject<List<RootObject>>(string);
или массив:
var h = JsonConvert.DeserializeObject<RootObject[]>(string);
если вы хотите, чтобы десериализовать ListRoot
, JSON должен выглядеть так:
{
"status": [
{
"text": "Sample Text",
...
},
{
"text": "Another Sample Text",
...
}
]
}