[Asp.net] ¿Qué significa .d en JSON?


Answers

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 a 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:

Question

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?




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.




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

<html>day</html>