Microsoft fournit-il une bibliothèque pour travailler avec JSON en C #? Si non, quelle bibliothèque open source recommandez-vous?
Réponses
Trop de publicités?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.
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; }
}
}