2015-03-17 2 views
-4

IDE: Visual Studio 2010 Платформа: C#Deserialize JSON объект DataTable

Я пытаюсь преобразовать объект JSON, которые состоят из данных в двух разных таблиц в таблице данных. Вот код, который я написал:

JavaScriptSerializer objJSSWW = new JavaScriptSerializer(); 
var lastBattingDetailsWW = JsonConvert.DeserializeObject<EmpDetails>(JsonBattingWW); 


public class EmpDetails 
{ 
    public List<List<object>> Table { get; set; } 
    public List<List<object>> Table1 { get; set; } 
} 

Я хочу, чтобы эти две таблицы хранились в DataTable. Какие-либо предложения ?

+0

Почему я вниз проголосовали так много? –

+0

Что вы попробовали? Какую ошибку вы получили? –

+0

Я пробовал это DataTable dtValue = (DataTable) JsonConvert.DeserializeObject (JsonBattingWW, (typeof (DataTable))); Попадание этой ошибки: Дополнительный текст, найденный в строке JSON после завершения десериализации объекта. –

ответ

0

Попытка предоставить вам (по крайней мере, псевдо) код. Предполагая, что у вас есть фиксированная длина вашего списка. В этом примере я предполагаю, что ваш список содержит 3 элемента.

DataTable dataTable1 = new DataTable(); 
dataTable1.Columns.Add("col1"); 
dataTable1.Columns.Add("col2"); 
dataTable1.Columns.Add("col3"); 
foreach (var row in EmpDetails.Table) 
{ 
    dataTable1.Rows.Add(row.ToArray()); 
} 

DataTable dataTable2 = new DataTable(); 
dataTable2.Columns.Add("col1"); 
dataTable2.Columns.Add("col2"); 
dataTable2.Columns.Add("col3"); 
foreach (var row in EmpDetails.Table1) 
{ 
    dataTable2.Rows.Add(row.ToArray()); 
} 

Если у вас есть 2 таблицы с одинаковыми столбцами можно просто объединить их:

dataTable1.Merge(dataTable2); 
+0

Я ценю этот ответ, но это займет много времени, если есть несколько записей. Я ищу какой-то способ десериализовать его за один раз, вместо того, чтобы перебирать все записи ... –

+0

десериализация также выполняет цикл через него ... как-то. – stefankmitph

+0

Но, это занимает меньше времени как-то ... В любом случае спасибо ... –

Смежные вопросы