Pregunta Biblioteca JSON para C # [cerrado]


¿Proporciona Microsoft alguna biblioteca para trabajar con JSON en C #? Si no, ¿qué biblioteca de código abierto recomiendas?


76
2017-09-24 21:54


origen


Respuestas:


JSON.Net


77
2017-09-24 21:59



También deberías probar mi ServiceStack JsonSerializer - es el serializador .NET JSON más rápido en este momento basado en los puntos de referencia de los principales serializadores JSON y admite la serialización de cualquier tipo de POCO, DataContracts, Lists / Dictionaries, Interfaces, Herencia, objetos de última hora incluidos tipos anónimos, etc.

Ejemplo Básico

var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = customer.ToJson();
var fromJson = json.FromJson<Customer>(); 

Nota: solo use el JavaScriptSerializer de Microsofts si el rendimiento no es importante para usted, ya que tuve que dejarlo fuera de mis puntos de referencia ya que 40x-100x más lento que los otros serializadores JSON.


19
2017-08-18 02:49



.NET Framework es compatible con JSON a través de JavaScriptSerializer. Aquí hay un buen ejemplo para comenzar.

using System.Collections.Generic;
using System.Web.Script.Serialization;

namespace GoogleTranslator.GoogleJSON
{
    public class FooTest
    {
        public void Test()
        {
            const string json = @"{
              ""DisplayFieldName"" : ""ObjectName"", 
              ""FieldAliases"" : {
                ""ObjectName"" : ""ObjectName"", 
                ""ObjectType"" : ""ObjectType""
              }, 
              ""PositionType"" : ""Point"", 
              ""Reference"" : {
                ""Id"" : 1111
              }, 
              ""Objects"" : [
                {
                  ""Attributes"" : {
                    ""ObjectName"" : ""test name"", 
                    ""ObjectType"" : ""test type""
                  }, 
                  ""Position"" : 
                  {
                    ""X"" : 5, 
                    ""Y"" : 7
                  }
                }
              ]
            }";

            var ser = new JavaScriptSerializer();
            ser.Deserialize<Foo>(json);
        }
    }

    public class Foo
    {
        public Foo() { Objects = new List<SubObject>(); }
        public string DisplayFieldName { get; set; }
        public NameTypePair FieldAliases { get; set; }
        public PositionType PositionType { get; set; }
        public Ref Reference { get; set; }
        public List<SubObject> Objects { get; set; }
    }

    public class NameTypePair
    {
        public string ObjectName { get; set; }
        public string ObjectType { get; set; }
    }

    public enum PositionType { None, Point }
    public class Ref
    {
        public int Id { get; set; }
    }

    public class SubObject
    {
        public NameTypePair Attributes { get; set; }
        public Position Position { get; set; }
    }

    public class Position
    {
        public int X { get; set; }
        public int Y { get; set; }
    }
}

14
2017-09-24 22:02



Si miras aquí, verás varias bibliotecas diferentes para JSON en C #.

http://json.org/

Encontrarás una versión para LINQ así como algunos otros. Hay aproximadamente 7 bibliotecas para C # y JSON.


7
2017-09-24 21:58



Es esto lo que estás buscando?

System.Web.Script.Serialization.JavaScriptSerializer 


5
2017-09-24 21:57



Eche un vistazo al espacio de nombres system.web.script.serialization (creo que necesitará .Net 3.5)


3
2017-09-24 21:58



Para dar una respuesta más actualizada a esta pregunta: sí, .Net incluye JSON seriliazer / deserliazer desde la versión 3.5 a través del espacio de nombres System.Runtime.Serialization.Json: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx

Pero según el creador de JSON.Net, el .Net Framework en comparación con su implementación de código abierto es mucho más lento.


2
2017-12-13 04:05



Para responder a su primera pregunta, Microsoft envía un DataContractJsonSerializer: vea msdn Cómo: Serializar y deserializar datos JSON


1
2017-09-29 06:07