Предоставляет ли Microsoft какую-либо библиотеку для работы с JSON в С#? Если нет, то какую библиотеку с открытым исходным кодом вы рекомендуете?
Библиотека JSON для С#
Ответ 1
Ответ 2
Вы также должны попробовать мой 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>();
Примечание. Используйте только сценарий JavaScriptSerializer от Microsoft, если производительность для вас не важна, так как мне пришлось оставить его вне моих тестов, так как он до 40x-100x медленнее, чем другие сериализаторы JSON.
Ответ 3
Структура .net поддерживает 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; }
}
}
Ответ 4
Если вы посмотрите здесь, вы увидите несколько разных библиотек для JSON на С#.
Вы найдете версию для LINQ, а также некоторых других. Для С# и JSON существует около 7 библиотек.
Ответ 5
Это то, что вы ищете?
Ответ 6
Посмотрите на пространство имен system.web.script.serialization(я думаю, вам понадобится .Net 3.5)
Ответ 7
Чтобы дать более актуальный ответ на этот вопрос: да,.Net включает JSON seriliazer/deserliazer с версии 3.5 через System.Runtime.Serialization.Json Namespace: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx
Но, по словам создателя JSON.Net,.NET Framework по сравнению с его версией с открытым исходным кодом намного медленнее.
Ответ 8
Чтобы ответить на ваш первый вопрос, Microsoft отправляет DataContractJsonSerializer: см. msdn Практическое руководство. Сериализация и десериализация данных JSON
Ответ 9
Попробуйте проект Vici, Vici Parser. Он включает в себя парсер/токенизер JSON. Он отлично работает, мы используем его вместе с инфраструктурой MVC.
Дополнительная информация: http://viciproject.com/wiki/projects/parser/home
Я забыл сказать, что это открытый исходный код, поэтому вы всегда можете взглянуть на код, если хотите.