Formato de respuesta del servicio web JSON de ASP.NET
He escrito un servicio web simple que obtiene la lista de productos en JSONText que es un objeto de cadena
El código del servicio web está debajo
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;
}
}
Ahora me da una respuesta como la siguiente:
{"d": "[{\" ProductID \ ": 1, \" ProductName \ ": \" Product 1 \ "}, {\" ProductID \ ": 2, \" ProductName \ ": \" Product 2 \ "}, {\" ProductID \ ": 3, \" ProductName \ ": \" Product 3 \ "}, {\" ProductID \ ": 4, \" ProductName \ ": \" Product 4 \ "}, { \ "ProductID \": 5, \ "ProductName \": \ "Product 5 \"}, {\ "ProductID \": 6, \ "ProductName \": \ "Product 6 \"}, {\ "ProductID \ ": 7, \" ProductName \ ": \" Product 7 \ "}, {\" ProductID \ ": 8, \" ProductName \ ": \" Product 8 \ "}, {\" ProductID \ ": 9, \ "ProductName \": \ "Product 9 \"}, {\ "ProductID \": 10, \ "ProductName \": \ "Product 10 \"}] "}
Pero estoy buscando por debajo de poner
[{"ProductID": 1, "ProductName": "Product 1"}, {"ProductID": 2, "ProductName": "Product 2"}, {"ProductID": 3, "ProductName": "Product 3" }, {"ProductID": 4, "ProductName": "Product 4"}, {"ProductID": 5, "ProductName": "Product 5"}, {"ProductID": 6, "ProductName": "Product 6 "}, {" ProductID ": 7," ProductName ":" Product 7 "}, {" ProductID ": 8," ProductName ":" Product 8 "}, {" ProductID ": 9," ProductName ":" Product 9 "}, {" ProductID ": 10," ProductName ":" Product 10 "}]
¿Alguien puede decirme cuál es el problema real?
Gracias