Ich muss die folgende JSON-Zeichenfolge in DataTable konvertieren.Verschachtelte JSON-Zeichenfolge in DataTable
{
"pnr":"1234567890",
"train_num":"12311",
"train_name":"HWH DLIKLK MAI",
"doj":"23-12-2013",
"from_station":
{
"code":"DLI",
"name":"Delhi"
},
"to_station":
{
"code":"KLK",
"name":"Kalka"
}
}
In Datatable muss ich
train_num
train_name
doj
from_station(name only)
to_station(name only)
zeigen, was ich bis jetzt ist haben,
public class Train
{
public string train_num { get; set; }
public string train_name { get; set; }
public string doj { get; set; }
public from_station from_station { get; set; }
public to_station to_station { get; set; }
}
public class from_station
{
public string code { get; set; }
public string name { get; set; }
}
public class to_station
{
public string code { get; set; }
public string name { get; set; }
}
public static DataTable ToDataTable(Train data)
{
PropertyDescriptorCollection props =
TypeDescriptor.GetProperties(typeof(Train));
DataTable table = new DataTable();
for (int i = 0; i < props.Count; i++)
{
PropertyDescriptor prop = props[i];
table.Columns.Add(prop.Name, prop.PropertyType);
}
object[] values = new object[props.Count];
for (int i = 0; i < values.Length; i++)
{
values[i] = props[i].GetValue(data);
}
table.Rows.Add(values);
return table;
}
var data = JsonConvert.DeserializeObject<Train>(JsonString);
dt = ToDataTable(data);
ui_grdVw_EmployeeDetail1.DataSource = dt;
ui_grdVw_EmployeeDetail1.DataBind();
Ich bin nur drei Spalten in Datentabelle
train_num
train_name
doj
warum auf eine Datentabelle überhaupt die Mühe Umwandlung? Sie können Ihr Zugobjekt direkt binden. z.B. Zugdaten = (Train) JsonConvert.DeserializeObject (JsonString); ui_grdVw_EmployeeDetail1.DataSource = Daten; –
Delosdos