Acabo de usar XmlWriter para crear algo de XML para enviar de vuelta en una respuesta HTTP. ¿Cómo crearías una cadena JSON? ¿Supongo que usaría un generador de cadenas para construir la cadena JSON y formatear su respuesta como JSON?
238
Respuestas:
Puede usar la clase JavaScriptSerializer , consulte este artículo para crear un método de extensión útil.
Código del artículo:
Uso:
fuente
Usar Newtonsoft.Json lo hace realmente más fácil:
Documentación: serialización y deserialización de JSON
fuente
string json = JsonConvert.SerializeObject(new { "PropertyA" = obj.PropertyA });
."PropertyA"
serloPropertyA
?string json = JsonConvert.SerializeObject(new { PropertyA = obj.PropertyA });
comillas doblesPropertyA.
Esta biblioteca es muy buena para JSON desde C #
http://james.newtonking.com/pages/json-net.aspx
fuente
Uso simple de las bibliotecas Newtonsoft.Json y Newtonsoft.Json.Linq .
fuente
Este fragmento de código utiliza el DataContractJsonSerializer de System.Runtime.Serialization.Json en .NET 3.5.
fuente
Eche un vistazo a http://www.codeplex.com/json/ para el proyecto json-net.aspx. ¿Por qué reinventar la rueda?
fuente
También puede probar mi ServiceStack JsonSerializer , es el serializador .NET JSON más rápido en este momento. Admite serialización de DataContracts, cualquier tipo de POCO, interfaces, objetos enlazados tarde, incluidos los tipos anónimos, etc.
Ejemplo básico
Nota: Solo use Microsofts JavaScriptSerializer si el rendimiento no es importante para usted, ya que tuve que dejarlo fuera de mis puntos de referencia ya que es hasta 40x-100x más lento que los otros serializadores JSON.
fuente
Si necesita un resultado complejo (incrustado), cree su propia estructura:
y luego puedes obtener una cadena JSON llamando
El resultado será así:
¡Espero eso ayude!
fuente
Si no puede o no quiere usar los dos serializadores JSON integrados ( JavaScriptSerializer y DataContractJsonSerializer ), puede probar la biblioteca JsonExSerializer ; la uso en varios proyectos y funciona bastante bien.
fuente
Si está intentando crear un servicio web para servir datos a través de JSON a una página web, considere usar el kit de herramientas ASP.NET Ajax:
http://www.asp.net/learn/ajax/tutorial-05-cs.aspx
Convertirá automáticamente sus objetos servidos a través de un servicio web a json, y creará la clase de proxy que puede usar para conectarse a él.
fuente
El DataContractJsonSerializer hará todo lo posible para usted con la misma fácil ya que el XMLSerializer. Es trivial usar esto en una aplicación web. Si está utilizando WCF, puede especificar su uso con un atributo. La familia DataContractSerializer también es muy rápida.
fuente
Descubrí que no necesitas el serializador en absoluto. Si devuelve el objeto como una Lista. Dejame usar un ejemplo.
En nuestro asmx obtenemos los datos usando la variable que pasamos
Luego, usando jquery, accedemos al servicio, pasando esa variable.
Y obtenemos nuestra respuesta.
fuente
Codificar el uso
Objeto simple para JSON Array EncodeJsObjectArray ()
Resultado: [[29, "mike"], [5, "dummy"]]
Bastante uso
Pretty print JSON Array PrettyPrintJson () método de extensión de cadena
Los resultados son:
fuente