Formato de resposta de serviço da Web do ASP.NET JSON
Eu escrevi um serviço web simples que obter lista de produtos em JSONText que é objeto de string
O código de serviço da Web está abaixo
using System;
using System.Collections.Generic;
using System.Web;
using System.Web.Services;
using System.Web.Script.Services;
using System.Runtime.Serialization.Json;
using System.IO;
using System.Text;
/// <summary>
/// Summary description for JsonWebService
/// </summary>
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.Web.Script.Services.ScriptService]
public class JsonWebService : System.Web.Services.WebService
{
public JsonWebService () {
//Uncomment the following line if using designed components
//InitializeComponent();
}
[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public string GetProductsJson(string prefix)
{
List<Product> products = new List<Product>();
if (prefix.Trim().Equals(string.Empty, StringComparison.OrdinalIgnoreCase))
{
products = ProductFacade.GetAllProducts();
}
else
{
products = ProductFacade.GetProducts(prefix);
}
//yourobject is your actula object (may be collection) you want to serialize to json
DataContractJsonSerializer serializer = new DataContractJsonSerializer(products.GetType());
//create a memory stream
MemoryStream ms = new MemoryStream();
//serialize the object to memory stream
serializer.WriteObject(ms, products);
//convert the serizlized object to string
string jsonString = Encoding.Default.GetString(ms.ToArray());
//close the memory stream
ms.Close();
return jsonString;
}
}
agora me dá resoponse como abaixo:
{"d": "[{\" ProductID \ ": 1, \" ProductName \ ": \" Produto 1 \ "}, {\" ProductID \ ": 2, \" ProductName \ ": \" Produto 2 \ "}, {\" ProductID \ ": 3, \" ProductName \ ": \" Produto 3 \ "}, {\" ProductID \ ": 4, \" ProductName \ ": \" Produto 4 \ "}, { \ "ProductID \": 5, \ "ProductName \": \ "Produto 5 \"}, {\ "ProductID \": 6, \ "ProductName \": \ "Produto 6 \"}, {\ "ProductID \ ": 7, \" ProductName \ ": \" Produto 7 \ "}, {\" ProductID \ ": 8, \" ProductName \ ": \" Produto 8 \ "}, {\" ProductID \ ": 9, \ "ProductName \": \ "Produto 9 \"}, {\ "ProductID \": 10, \ "ProductName \": \ "Produto 10 \"}] "}
Mas eu estou procurando abaixo fora de colocar
[{"ProductID": 1, "ProductName": "Produto 1"}, {"ProductID": 2, "ProductName": "Produto 2"}, {"ProductID": 3, "ProductName": "Produto 3" }, {"ProductID": 4, "ProductName": "Produto 4"}, {"ProductID": 5, "ProductName": "Produto 5"}, {"ProductID": 6, "ProductName": "Produto 6 "}, {" ProductID ": 7," ProductName ":" Produto 7 "}, {" ProductID ": 8," ProductName ":" Produto 8 "}, {" ProductID ": 9," ProductName ":" Produto 9 "}, {" ProductID ": 10," ProductName ":" Produto 10 "}]
qualquer um pode me dizer qual é o problema real
obrigado