Hace unos días hablaba de ObjectInfo y ServerInfo, dos helpers presentes en System.Web.Helpers, un componente compartido por ASP.NET MVC 3 y WebPages. Hoy vamos a revisar la clase estática Json
, también definida en dicho espacio de nombres, que podemos utilizar para codificar objetos en formato JSON (JavaScript Object Notation) y viceversa, crear instancias de objetos partiendo de un texto JSON.
El primero de los sentidos, CLR—>JSON, no es algo que no pudiéramos hacer antes utilizando los serializadores Javascript, pero este componente nos lo pone algo más fácil. Por ejemplo, dada la siguiente clase del Modelo:
… y un controlador en el que suministramos a la vista una instancia de dicha clase:
En la Vista podríamos introducir un código como el siguiente para volcar sobre la salida la representación JSON del objeto del modelo. Observad que hasta ahora para conseguir lo mismo teníamos que escribir bastante más código:
Fijaos asimismo que el resultado de Json.Encode
(bueno, y la alternativa anterior también), debemos pasarlo por una llamada a Html.Raw()
para evitar que sea codificado a HTML antes de enviarlo al cliente. En cualquier caso, el resultado puede ser asignado directamente a una variable, puesto que el marcado generado es la representación JSON del objeto suministrado listo para su uso, como puede observarse en el resultado de procesar la vista anterior:
Por otra parte, también podemos utilizar la clase Json
para hacer la conversión inversa, es decir, construir un objeto del CLR desde un string
que representa un objeto codificado en JSON. Como en el caso anterior, también podíamos utilizar JavascriptSerializer
para conseguirlo, pero ahora podemos hacerlo más rápidamente:
Publicado originalmente en: http://www.variablenotfound.com/2011/02/serializacion-y-deserializacion-json-en.html
Esto me va a ser muy útil :oP Muy bueno el artículo