76 votes

Bibliothèque JSON pour C #

Microsoft fournit-il une bibliothèque pour travailler avec JSON en C #? Si non, quelle bibliothèque open source recommandez-vous?

77voto

Amy Points 8019

19voto

mythz Points 54874

Vous devriez également essayer de mon ServiceStack JsonSerializer - il est le plus rapide .NET sérialiseur JSON pour le moment basé sur les critères de référence de la principale JSON sérialiseurs et prend en charge la sérialisation de tout Type POCO, DataContracts, les Listes et les Dictionnaires, les Interfaces, Héritage, Tardive des objets, y compris les types anonymes, etc.

Exemple De Base

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

Remarque: utilisez Uniquement les Microsoft JavaScriptSerializer si la performance n'est pas important pour vous que j'ai dû laisser mes repères depuis sa jusqu'à 40x et 100x plus lent que les autres JSON sérialiseurs.

14voto

Ty. Points 2435

Le framework .net prend en charge JSON via JavaScriptSerializer. Voici un bon exemple pour vous aider à démarrer.

 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; }
    }
}
 

7voto

James Black Points 26183

Si vous regardez ici, vous verrez plusieurs bibliothèques différentes pour JSON sur C #.

http://json.org/

Vous trouverez une version pour LINQ ainsi que quelques autres. Il y a environ 7 bibliothèques pour C # et JSON.

5voto

slolife Points 6528

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X