¿Qué significa .d en JSON?

Tengo un .NET webmethod al que he llamado desde jQuery. El método devuelve un marcado HTML que se muestra dentro de un elemento DIV.

Una vez que tengo la respuesta que uso

$("#div").html(result.d); 

Mi pregunta es, ¿qué hace el .d? No me gusta usar el código que no entiendo completamente? ¿Podría obtener el mismo resultado usando Eval?

¿Te refieres a los servicios de datos ADO.NET?

Recuerdo haber escuchado una presentación sobre el retorno de JSON y creo que es solo un envoltorio para garantizar que la carga sea un objeto JSON en lugar de una matriz (que es el caso de devolver varias entidades).

¿Por qué ‘d’ específicamente? Creo que los recuerdo diciendo algo como ‘bueno, tenía que ser algo’.

Basado en este tutorial: Servicio web JSON Y jQuery con Visual Studio 2008

El método web devuelve un producto serializado en formato JSON. Como no hay tipo JSON , el valor devuelto es un String con formato JSON.

En el lado del cliente, la llamada ajax devuelve un JSON.

El resultado se ve como {d: 'returned-string-with-JSON-format'}

Más exactamente algo como: {d:'{"ID":123,"Name":"Surface Pro 2"}'}

Tenga en cuenta que 'returned-string-with-JSON-format' es una cadena, no un objeto JSON, por lo que no puede hacer result.d.ID .

En su lugar, debe convertirlo en objeto JSON utilizando JSON.parse(result.d) o eval(result.d)

Al final, lo que realmente quieres es hacer esto:

 result = JSON.parse(result.d) 

ACTUALIZACIÓN También considere esta demostración, donde uso un JSON en formato de cadena y lo convierto en un objeto JSON:

enter image description here

Código ASPX aquí:

      

C # Código aquí:

 public partial class Contact : Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindList(); } int[] arr1 = new int[] { 1, 2 }; ListBox1.SelectedValue = "1"; ListBox1.SelectedValue = "4"; } void BindList() { List lst = new List() { new Product{Id=1,Name="Photo"}, new Product{Id=2,Name="Photo"}, new Product{Id=3,Name="Photo"}, new Product{Id=4,Name="Photo"} }; ListBox1.DataSource = lst; ListBox1.DataTextField = "Name"; ListBox1.DataValueField = "Id"; ListBox1.DataBind(); } [WebMethod] public static string GetProducts() { // instantiate a serializer JavaScriptSerializer TheSerializer = new JavaScriptSerializer(); //optional: you can create your own custom converter // TheSerializer.RegisterConverters(new JavaScriptConverter[] { new MyCustomJson() }); //var products = context.GetProducts().ToList(); Product products = new Product() { Id = 1, Name = "Testing Services" }; var TheJson = TheSerializer.Serialize(products); return TheJson; } } 

puede ser un enlace muy útil para aquellos que realmente quieren aprender de cero un ejemplo sobre la clase contenedora donde los detalles en una clase nunca se pueden desvelar a otra clase pero se puede acceder indirectamente a través de varios métodos http: //www.c-sharpcorner .com / Blogs / 12038 / wrapper-clase-en-C-Sharp.aspx

Devuelve el valor del campo llamado ‘ d ‘ en el objeto ‘ result ‘.

Esta pregunta muestra un ejemplo de cómo podría verse el JSON, observe el campo d: .

La d es parte del resultado devuelto por su código .NET. Si miras este código, deberías ver una variable con el nombre d. Si se genera a partir de clases serializadas, probablemente envíe un miembro de esa clase con el nombre d.

Como han señalado otros, devuelve el miembro "d" del objeto "result" .
Si quisiera tener "d" en una variable, podría usar esto:

 var property = "d"; var value = result[property]; 

Está muy claro que $ (“# div”). Html (result.d); en tu código

“resultado” es un objeto yd es propiedad de “resultado”.

Vamos a explicar,

si creas un objeto como este,

 var result{"id": "number", "d": "day"}; 

si accedemos a la propiedad del resultado es que usando jquery

 $("#div").html(result.d); 

así que obtenemos el resultado en html es

 day