Предоставляет ли Microsoft любую библиотеку для работы с JSON в C#? Если нет, то какую библиотеку с открытым исходным кодом вы рекомендуете?Библиотека JSON для C#
ответ
В чем преимущество использования JSON.NET через System.Web.Script.Serialization.JavaScriptSerializer? – weilin8
он позволяет вам использовать как свойство класса, а просто сериализовать строки, для одного ... есть еще путь .. – balexandre
Не используйте JavaScriptSerializer примерно в 40 раз медленнее, чем большинство других сериализаторов JSON, которые я тестировал. – mythz
Вы хотите что-то ищите?
Посмотрите на пространство имен system.web.script.serialization (я думаю, что вы будете нуждаться в .Net 3.5)
Если вы посмотрите здесь, вы увидите несколько различных библиотек для JSON на C#.
Вы найдете версию для LINQ, а также некоторые другие. Для C# и JSON существует около 7 библиотек.
рамкиВ .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; }
}
}
Это хороший код, как я могу один из классов вернуть результаты? Например, ObjectName для вывода в текстовое поле с тестовым именем результатов? Я попробовал 'test = GoogleTranslator.GoogleJSON.NameTypePair.ObjectName' messagebox.show (test) – Ebikeneser
Попробуйте проект Vici, Vici Parser. Он включает в себя парсер/токенизер JSON. Он отлично работает, мы используем его вместе с инфраструктурой MVC.
Больше информации на: http://viciproject.com/wiki/projects/parser/home
Я забыл сказать, что он является открытым исходным кодом, так что вы всегда можете посмотреть на код, если вам нравится.
Вы должны также попробовать свои ServiceStack JsonSerializer - это самый быстрый .NET JSON сериализатор в данный момент based on the benchmarks of the leading JSON serializers и поддерживает сериализацию любого ПОКО Тип, DataContracts, списки/Словари, интерфейсы, наследование, Поздний переплет объектов, включая анонимные типы и т.д.
Базовый пример
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = customer.ToJson();
var fromJson = json.FromJson<Customer>();
Примечание: используйте Microsofts JavaScriptSerializer только если производительность не важна для вас, как я должен был оставить его из моих тестов, так как его до 40x-100x медленнее, чем е другие JSON-сериализаторы.
Чтобы ответить на ваш первый вопрос, Microsoft делает корабль на DataContractJsonSerializer: см
MSDN How to: Serialize and Deserialize JSON DataЧтобы дать более актуальной ответ на этот вопрос: да, .Net включает JSON seriliazer/deserliazer начиная с версии 3.5 через систему .Runtime.Serialization.Json Пространство имён: http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json(v=vs.110).aspx
Но, по словам создателя JSON.Net, .Net Framework по сравнению с его версией с открытым исходным кодом намного медленнее.
- 1. C библиотека для файлов JSON в Windows
- 2. Библиотека несовместимости GPL JSON-RPC для C++
- 3. Библиотека XML для JSON
- 4. Библиотека для преобразования схемы JSON в JSON
- 5. JSON зритель библиотека для PHP
- 6. Рабочая библиотека Json для Javascript?
- 7. Финансовая библиотека для C/C++
- 8. P2P библиотека для C++
- 9. GPSd библиотека для C++
- 10. Библиотека C++ для android
- 11. Сетевая библиотека для C
- 12. Географическая библиотека для C#
- 13. Геодезическая библиотека для C#
- 14. библиотека C++ для XMLRPC
- 15. PGP-библиотека для C
- 16. Библиотека доков для C#
- 17. Библиотека GetOpt для C#
- 18. Библиотека UUID для C?
- 19. Microsoft.Office.Interop.Outlook библиотека для C++
- 20. Библиотека Epub для C++
- 21. C библиотека для графиков
- 22. Unity C# Библиотека JSON без исключений
- 23. Является ли библиотека JSON C потокобезопасной?
- 24. Библиотека C/JSON в популярных дистрибутивах Linux?
- 25. Библиотека C++ для HTTP-запросов - XML, JSON, CSV
- 26. Есть ли автономная библиотека сервера json-rpc для C#?
- 27. Лучшая библиотека JSON для получения данных JSON для Django?
- 28. Библиотека NFC C# для окон
- 29. C Библиотека для расширенной тригонометрии?
- 30. ORM-подобная библиотека для C
Вы имеете в виду потребление, создание или и то, и другое? –
Оба потребляют и создают. Спасибо – weilin8