У меня есть массив JSON. Я хочу отобразить/deserialize это в следующий класс.Deserialize JSON-объект в C# с использованием Newtonsoft json.net
public sealed class DataItem{
public string UserId {get; set;}
public string TestId {get; set;}
public string UserName{get; set;}
public string Data1 {get; set;}
public string Data2 {get; set;}
public string Data3 {get; set;}
public string Data4 {get; set;}
public string Data5 {get; set;}
public string Data6 {get; set;}
public string Data7 {get; set;}
public string Data8 {get; set;}
public string Data9 {get; set;}
public string Data10 {get; set;}
...
...
}
JSON массива:
[{
"UserId": "5656",
"TestId": "562",
"UserName": "testuser",
"Data1": "dang",
"Data2": "phy",
"Data3": "right",
"Data4": "left",
"Data5": "top",
"Data6": "abc",
"Data7": "rat",
"Data8": "test",
"Data9": "91",
"Data10": "9090",
...
...
}, {
"UserId": "8989",
"TestId": "12",
"UserName": "abc",
"Data1": "111",
"Data2": "222",
"Data3": "Pwww",
"Data4": "aaa",
"Data5": "bbbb",
"Data6": "cc",
"Data7": "ooo",
"Data8": "hh",
"Data9": "g",
"Data10": "5656",
...
...
}]
В моей программе я сделал так:
IList<DataItem> allItem = JsonConvert.DeserializeObject<IList<DataItem>>(myJsonArray);
Это прекрасно работает.
Но в моем случае имеется около 1000 Datas внутри массива json, например Data1
до Data1000
, который исходит из базы данных. И я не хочу, чтобы определить 1000 DATAS в моем классе «DataItem» как:
public sealed class DataItem{
...
...
public string Data1 {get; set;}
public string Data2 {get; set;}
.
.
.
public string Data1000 {get; set;}
}
Есть ли способ, чтобы решить эту проблему, используя некоторые динамические классы или объекты для отображения этих 1000 DATAS (Data1 к Data1000).
Я думаю использовать массив длиной 1000 и отобразить их так, и я знаю, что это не сработает.
public sealed class DataItem{
public string UserId {get; set;}
public string TestId {get; set;}
public string[] Data {get; set;}
}
public DataItem(){
Data = new string[1000];
}
И в моей программе:
DataItem dataItem = new DataItem();
IList<DataItem> allItem = JsonConvert.DeserializeObject<IList<DataItem>>(myJsonArray);
P.S. Я не могу изменить структуру массива JSON.
Можете ли вы просто использовать динамический объект вместо класса DataItem? 'JsonConvert.DeserializeObject> (myJsonArray);'? –
squillman
Вы можете сделать что-то вроде 'dynamic data = Json.Decode (json);' – Majid