CONFIGURAR JSON

MORCELI 06/09/2016 19:24:03
#466601
Boa noite pessoal,

Estou estudando sobre Json, minha duvida é a seguinte conforme a imagem em anexo o meu json está meio que formato xml e nos exemplos que olhei na internet são json puro em formato de texto, tentei achar alguma coisa sobre isso e nada. Alguém sabe se meu json está correto o formato, ou está totalmente fora dos padrões.Obs eu gostaria que ficasse como esse link http://www.w3schools.com/website/customers_mysql.php, onde tá o pulo do gato que até agora não consegui encontrar...

    <WebMethod()> _
Public Function GetCusStomers()

Dim JsSerializer As New JavaScriptSerializer()
Dim constr As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\BANCO\BancoTop10.mdb[Ô]
Dim con As New OleDb.OleDbConnection(constr)
Dim cmd As New OleDb.OleDbCommand([Ô]select top 10 N, Produto, PLU, Qtd, Valor, Loja, Sequencia from TbTop Order by Sequencia Asc[Ô])
cmd.Connection = con

Dim customers As New List(Of TopPerdas)()

con.Open()
Dim sdr As OleDb.OleDbDataReader = cmd.ExecuteReader()
While sdr.Read()
customers.Add(New TopPerdas() With { _
.Produto = sdr([Ô]Produto[Ô]).ToString(), _
.PLU = sdr([Ô]PLU[Ô]).ToString(), _
.Qtd = sdr([Ô]Qtd[Ô]).ToString(), _
.Valor = sdr([Ô]Valor[Ô]).ToString(), _
.Loja = sdr([Ô]Loja[Ô]).ToString() _
})



End While

con.Close()
Dim js As JavaScriptSerializer = New JavaScriptSerializer()
js.MaxJsonLength = Integer.MaxValue

[ô] Context.Response.Write(js.Serialize(customers))
Return js.Serialize(customers)

End Function
Public Class TopPerdas
Public Property Produto() As String
Public Property PLU() As String
Public Property Qtd() As String
Public Property Valor() As String
Public Property Loja() As String


End Class
KERPLUNK 06/09/2016 19:58:49
#466602
Resposta escolhida
Você precisa especificar o formato de forma correta, usando uma outra decoração, fazendo seu método ficar assim:

<WebMethod> _
<ScriptMethod(ResponseFormat := ResponseFormat.Json)> _
Public Function GetCusStomers()

Dim JsSerializer As New JavaScriptSerializer()
Dim constr As String = [Ô]Provider=Microsoft.Jet.OLEDB.4.0; Data Source=C:\BANCO\BancoTop10.mdb[Ô]
Dim con As New OleDb.OleDbConnection(constr)
(resto do código normal)


Assim, deve funcionar como você quer.
MORCELI 06/09/2016 20:26:04
#466603
Fiz como você mostrou Kerplunk e continua no mesmo formato,
KERPLUNK 06/09/2016 21:01:12
#466605
Hmmm, agora que reparei, você está usando um WebService SOAP, para poder retornar JSON especificamente, não vai ser muito simples e nem sempre funciona muito bem. Sugiro o uso de WebAPI, nela o formato da resposta é guiado pela requisição, então se a requisição for XML, a resposta será XML e se for JSON a resposta será JSON.
MORCELI 06/09/2016 21:48:04
#466606
Nossa vou estudar sobre webAPI então Kerplunk , se você souber de algum material ou exemplos nessa linha que estou seguindo poderia passar para mim fazendo um grande favor..

Obrigado pela dica, até as próximas perguntas .....
KERPLUNK 06/09/2016 22:28:11
#466607
Citação:

:
Nossa vou estudar sobre webAPI então Kerplunk , se você souber de algum material ou exemplos nessa linha que estou seguindo poderia passar para mim fazendo um grande favor..

Obrigado pela dica, até as próximas perguntas .....


Tenho uma série de vídeos sobre isso no meu canal.
MORCELI 07/09/2016 21:17:39
#466614
Obrigado!!
Tópico encerrado , respostas não são mais permitidas