9 ответов:
вы также должны попробовать мой ServiceStack JsonSerializer - Это самый быстрый сериализатор .NET JSON на данный момент на основе тестов ведущих сериализаторов JSON и поддерживает сериализацию любого типа POCO, DataContracts, списков / словарей, интерфейсов, наследования, объектов с поздней привязкой, включая анонимные типы и т. д.
Простой Пример
var customer = new Customer { Name="Joe Bloggs", Age=31 }; var json = customer.ToJson(); var fromJson = json.FromJson<Customer>();Примечание: используйте только Microsofts JavaScriptSerializer, если производительность не важна для вас как я должен был оставить его из моих критериев, так как его до 40x-100x медленнее, чем другие сериализаторы JSON.
платформа .net framework поддерживает JSON через JavaScriptSerializer. Вот хороший пример, чтобы вы начали.
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; } } }
Если вы посмотрите здесь, вы увидите несколько различных библиотек для JSON на C#.
вы найдете версию для LINQ, а также некоторые другие. Существует около 7 библиотек для C# и JSON.
чтобы дать более актуальный ответ на этот вопрос: да, .Net включает в себя JSON seriliazer/deserliazer начиная с версии 3.5 через систему.Во время выполнения.Сериализация.Пространства Имен В Формате JSON : http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs. 110).aspx
но по словам создателя JSON.Net, .Net Framework по сравнению с его реализацией с открытым исходным кодом очень медленнее.
чтобы ответить на ваш первый вопрос, Microsoft действительно поставляет DataContractJsonSerializer: см. msdn Как сериализовать и десериализовать данные JSON
попробуйте проект Vici, Vici Parser. Он включает в себя парсер / токенизатор JSON. Он отлично работает, мы используем его вместе с фреймворком MVC.
дополнительная информация по адресу:http://viciproject.com/wiki/projects/parser/home
Я забыл сказать, что это с открытым исходным кодом, так что вы всегда можете взглянуть на код, если вам нравится.
Comments