Hola a todos
Aqui os traigo el ejemplo de como desserializar los datos de json y convertirlos a un datatable.
Bien vamos con el codigo
“V” son los datos recibidos por el webservice. ver post de JSON A DATATABLE
Asi que ahora lo que hacemos es la declaracion de la desserialización, y donde nos retornara los datos, este objeto sera de tipo lista con diccionario, igual que cuando serializamos.
1 2 |
Dim Des As New System.Web.Script.Serialization.JavaScriptSerializer Dim ListaDatos = Des.Deserialize(Of List(Of Dictionary(Of String, Object)))(V) |
ahora lo que debemos hacer es ir creando el datatable.
Pues bien lo que debemos obtenet son las keys del diccionario del primer registro del listado.
declaro el datatable
1 |
Dim dtDes As New DataTable |
y creo las columas.
1 2 3 |
For i As Integer = 0 To ListaDatos(0).Keys.Count - 1 dtDes.Columns.Add(ListaDatos(0).Keys(i).ToString) Next |
ahora solo nos queda ir rellenado los datarows ..
sabiendo que el listado es como un row y las keys como columnas la cosa quedaria asi
1 2 3 4 5 6 7 |
For Rows As Integer = 0 To ListaDatos.Count - 1 drDes = dtDes.NewRow For Columns As Integer = 0 To ListaDatos(Rows).Keys.Count - 1 drDes(ListaDatos(Rows).Keys(Columns)) = ListaDatos(Rows).Item(ListaDatos(Rows).Keys(Columns)) Next dtDes.Rows.Add(drDes) Next |
y ya tenemos el datatable relleno,.
ahora todo el codigo seguido.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
Dim Des As New System.Web.Script.Serialization.JavaScriptSerializer Dim ListaDatos = Des.Deserialize(Of List(Of Dictionary(Of String, Object)))(V) Dim dtDes As New DataTable 'creamos las columnas For i As Integer = 0 To ListaDatos(0).Keys.Count - 1 dtDes.Columns.Add(ListaDatos(0).Keys(i).ToString) Next 'Ahora los datos Dim drDes As DataRow For Rows As Integer = 0 To ListaDatos.Count - 1 drDes = dtDes.NewRow For Columns As Integer = 0 To ListaDatos(Rows).Keys.Count - 1 drDes(ListaDatos(Rows).Keys(Columns)) = ListaDatos(Rows).Item(ListaDatos(Rows).Keys(Columns)) Next dtDes.Rows.Add(drDes) Next |
Espero que os sirva, un saludo a todo. y ya sabes siguenos en twitter en facebook , google+, y que no se te olvide comentar.
Excelente, explicacion clara y detallada me funciono muy bien