Foros del Web » Programando para Internet » ASPX (.net) »

Problema con Retorno de JSON

Estas en el tema de Problema con Retorno de JSON en el foro de ASPX (.net) en Foros del Web. Cordial Saludo Me encuentro trabajando con el editor WYSIWYG ( http://demos.telerik.com/kendo-ui/editor/imagebrowser ) de Kendo UI y para poder usar su imageBrowser requiero retornar datos en ...
  #1 (permalink)  
Antiguo 08/04/2015, 18:10
 
Fecha de Ingreso: marzo-2009
Ubicación: Cali (Valle) - Colombia
Mensajes: 164
Antigüedad: 15 años, 8 meses
Puntos: 2
De acuerdo Problema con Retorno de JSON

Cordial Saludo

Me encuentro trabajando con el editor WYSIWYG (http://demos.telerik.com/kendo-ui/editor/imagebrowser) de Kendo UI y para poder usar su imageBrowser requiero retornar datos en un JSON "limpio", es decir, con el siguiente formato:

Código:
[{"name":"cr1.jpg","type":"f","size":394875},{"name":"cr2.jpg","type":"f","size":370922},{"name":"cr3.jpg","type":"f","size":361742},{"name":"cr4.jpg","type":"f","size":404497}]
pero mi web service (escrito en VB) me los retorna de la siguiente manera:

Código:
<?xml version="1.0" encoding="UTF-8"?>
<string xmlns="http://tempuri.org/">[{"name":"cr1.jpg","type":"f","size":394875},{"name":"cr2.jpg","type":"f","size":370922},{"name":"cr3.jpg","type":"f","size":361742},{"name":"cr4.jpg","type":"f","size":404497}]</string>
Este es el código de mi WebMethod

Código:
 <WebMethod(enableSession:=True)> _
    <ScriptMethod(ResponseFormat:=ResponseFormat.Json)> _
    Public Function Read() As String
        Dim tbl As New DataTable
        Dim r As DataRow
        tbl.Columns.Add("name", Type.GetType("System.String"))
        tbl.Columns.Add("type", Type.GetType("System.String"))
        tbl.Columns.Add("size", Type.GetType("System.Int32"))
        Dim ruta As String = System.AppDomain.CurrentDomain.BaseDirectory() + "files\plantillas"
        Dim folder As New DirectoryInfo(ruta)
        For Each archivo As FileInfo In folder.GetFiles()
            r = tbl.NewRow
            r("name") = archivo.Name.ToString
            r("type") = "f"
            r("size") = archivo.Length
            tbl.Rows.Add(r)
            r = Nothing
        Next
        Return JsonConvert.SerializeObject(tbl)
    End Function
Este es mi código JS:

Código:
                $(document).ready(function() {
                    $("#editor").kendoEditor({
                        tools: [
                            "insertImage"
                        ],
                        imageBrowser: {
                           messages: {
                            dropFilesHere: "Drop files here"
                           },
                           transport: {
                                read: "/miws.asmx/Read"
                           }
                        }                        
                    });
                });
Si alguno de ustedes sabe cómo podría hacer para que el JSON sea retornado como lo requiero le agradecería mucho su ayuda.

Quedo atento.

Muchas gracias.
  #2 (permalink)  
Antiguo 10/04/2015, 08:10
Avatar de murdoc92  
Fecha de Ingreso: mayo-2012
Ubicación: Santiago
Mensajes: 58
Antigüedad: 12 años, 6 meses
Puntos: 3
Respuesta: Problema con Retorno de JSON

Te dejo el código en C#, tienes que pasarlo a VB y reemplazarlo en:
Return JsonConvert.SerializeObject(tbl)


var serializer = new JavaScriptSerializer();
var rows = new List<Dictionary<string, object>>();
Dictionary<string, object> row;
foreach (DataRow dr in dataTable.Rows)
{
row = new Dictionary<string, object>();
foreach (DataColumn col in tbl.Columns)
row.Add(col.ColumnName, dr[col]);
rows.Add(row);
}
Context.Response.Output.Write(serializer.Serialize (rows));

Saludos.
__________________
Erick Muñoz | Analista Programador Integral.
www.tamper.cl | Comunidad de informáticos de Chile
www.facebook.com/erick.munozsalinas

Etiquetas: services
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:10.