2012-06-29 13 views
16

¿Qué es mejor usar cuando se trata de codificación y decodificación de JSON en .NET? He intentado ambos y hasta este punto JsonConvert parece estar haciendo un buen trabajo. He usado JavaScriptSerializer en el pasado con éxito, pero he tenido algunos problemas en el pasado reciente con él. ¿Es mejor usar JSON.NET que la clase .NET?JSON.NET JsonConvert vs .NET JavaScriptSerializer

¿Cuáles son las funciones preferidas para codificar/decodificar json usando la biblioteca apropiada? Yo uso SerializeObject/DeSerializeObject de JSON.NET y Serialize/DeSerialize de .NET.

Gracias

+0

Hay es [una buena comparación aquí] (http://www.servicestack.net/mythz_blog/?p=344) en términos de velocidad. Incluso después de leer este artículo he usado Newtonsoft.Json, ya que me hizo un trabajo decente. – toske

Respuesta

27

Creo this es exactamente el tipo de comparación que busca.

Básicamente dice que JSON.Net es mejor, ya que entre otras cosas ...

  • Es más rápido
  • Ha LINQ al apoyo JSON
  • Puede convertir JSON para y de XML

En mi opinión, lo único positivo, (y es algo positivo), que puedo ver para el serializador integrado es que no hay una dependencia externa adicional para administrar.

Editar: CodePlex se está cerrando un día así que usted puede encontrar la comparación here así, sólo la búsqueda de "Comparación de funciones" en la página.

+0

_Es más rápido_ ¿Lo has probado? Intenté con .NET 4.5.2 y Json.NET 9.01 y no es para nada más rápido que JavaScriptSerializer. Las estadísticas de velocidad en el sitio oficial se refieren a JSON.NET 5 ... ¡un poco anticuado! – krlzlx

+1

@krlzlx .Net 4.5.2 fue lanzado en mayo de 2015, y JSON.Net 9.01 hace unos meses mientras escribía esta respuesta hace 3 años en 2013. ¿Por qué no proporciona una respuesta actualizada con sus métricas en lugar de ser sarcástica? ! – Haohmaru

+0

Lo siento, sé que su respuesta es de 2013. Pero no proporcionó ninguna métrica, a excepción de las que están en el sitio web de Json.NET. Me decepcionó cuando lo probé. Eso es todo. – krlzlx

9

Durante mucho tiempo, mi aplicación usó JavascriptSerializer y no vio ningún motivo real para migrar. Incluso si las comparaciones de rendimiento reclaman enormes ganancias porcentuales, estamos hablando de milisegundos.

Pero aquí es una muy buena razón para migrar: JavascriptSerializer no está disponible en .Net Core porque es parte de System.Web Así que si usted está utilizando JavascriptSerializer, le pegan y tienen que migrar a JSON.net

+1

ese es un buen punto a considerar +1 – Haohmaru