none
Formato JSON consulta LINQ RRS feed

  • Pregunta

  • HOla espero esten bien, estoy haciendo una consulta el cual envio mi informacion a formato json el codigo que utilizo es el siguente:

    Dim Usuario As String = HttpContext.User.Identity.Name
            Dim QueryString As String = "SELECT a.cumplimiento, b.nombre FROM cum_user_sis a INNER JOIN cord_sis b ON b.ID_sist=a.ID_sist AND b.ID_cord=" & IDCoor & " AND b.eliminar=0 WHERE a.UserName='" & Usuario & "'"
            Using connection As New SqlConnection(ConfigurationManager.ConnectionStrings("DefaultConnection").ConnectionString)
                connection.Open()
                Dim Command As New SqlCommand(QueryString, connection)
                Dim Reader As SqlDataReader = Command.ExecuteReader
                Dim Tabla As New DataTable
                Tabla.Load(Reader)
                Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
                Dim SistemaL = (From Sis In Tabla.AsEnumerable() Select New With {.name = Sis.Field(Of String)("nombre"), .data = Sis.Field(Of Double)("cumplimiento")}).ToList
                Return Json(SistemaL)
            End Using

    Cuando recibo los datos por AJAX me retorna los siguiente

    name:"Nombre del sistema"

    data:2

    Pero esto asi no me funciona requiero que el campo data contenga corchetes asi:

    name:"Nombre del sistema"

    data:[2]

    esto lo hago para hacer una grafica con Highcharts y me di cuenta que sin los corchetes no hace la grafica.

    como puedo colocarlos o javascript se pueden colocar agradezco de antemano su apoyo

    miércoles, 27 de enero de 2016 21:32

Respuestas

  • Ya lo solucione cuando lo recibo por ajax hice lo siguiente

     var datas = [];
                for (var i = 0; i < Result.length; i++) {
                    var Valores = { "name": Result[i].name, "data": [Result[i].data] };
                    datas.push(Valores);
                }

    y ya mando a imprimir el valor datas y ya grafica,

    gracias pero si hay otra opcion es bienvenida.

    saludos!!

    miércoles, 27 de enero de 2016 21:54
  • hola

    si quiere que llegue con corchetes debes hacer que la serializacion sea un array o lista

    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
    
    Dim SistemaL = (From Sis In Tabla.AsEnumerable() _
    					Select New With {_
    						.name = Sis.Field(Of String)("nombre"), _
    						.data = New Double() { Sis.Field(Of Double)("cumplimiento") } _
    					}).ToList()
    					
    Return Json(SistemaL)

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 27 de enero de 2016 23:39

Todas las respuestas

  • Ya lo solucione cuando lo recibo por ajax hice lo siguiente

     var datas = [];
                for (var i = 0; i < Result.length; i++) {
                    var Valores = { "name": Result[i].name, "data": [Result[i].data] };
                    datas.push(Valores);
                }

    y ya mando a imprimir el valor datas y ya grafica,

    gracias pero si hay otra opcion es bienvenida.

    saludos!!

    miércoles, 27 de enero de 2016 21:54
  • hola

    si quiere que llegue con corchetes debes hacer que la serializacion sea un array o lista

    Dim serializer As New System.Web.Script.Serialization.JavaScriptSerializer()
    
    Dim SistemaL = (From Sis In Tabla.AsEnumerable() _
    					Select New With {_
    						.name = Sis.Field(Of String)("nombre"), _
    						.data = New Double() { Sis.Field(Of Double)("cumplimiento") } _
    					}).ToList()
    					
    Return Json(SistemaL)

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 27 de enero de 2016 23:39