Есть ли какой-либо вспомогательный класс для консолидации Json Serialization в .NET BCL?
Мне нужно сериализовать/де-сериализовать некоторые объекты в/из строки и перенести их как непрозрачные данные. Я могу использовать XmlSerializer для этого, но сгенерированная строка выглядит неуклюжей и длинной. Итак, есть ли какой-нибудь сжатый Serializer, доступный в .NET?
Первое, что приходит мне на ум, - возможно,.NET должен иметь JSON Serializer, но я не могу его найти. Есть ли какой-либо готовый подход в .NET для преобразования объекта в/из краткой строки?
Ответы
Ответ 1
Есть два:
Традиционно они не на 100% совместимы друг с другом, особенно re DateTime
; DCJS использует (IIRC) литеральную строку; JSS использует new
- и ни один из них не может правильно прочитать.
Конечно, если текст непрозрачный, вы также можете использовать любой сжатый двоичный сериализатор и просто base-64 его кодировать; например, protobuf-net довольно краток. Но использование JSON сводит к минимуму внешний код, необходимый на каждом конце, поэтому вполне может быть вашим лучшим выбором.
Ответ 2
Json.Net - это библиотека JSON для .NET. Он доступен в CodePlex.
Ответ 3
У меня есть очень быстрый открытый JsonSerializer, который может сериализовать любой тип POCO или DataContract, включая интерфейсы анонимные и поздние связанные типы и т.д.
Основной пример
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json);
Ответ 4
LINQ To Json может сериализоваться и десериализоваться.
Ответ 5
просто используйте свой собственный api.. его легко создать json.. но вы также можете использовать JSON-библиотеки, такие как JSON.NET..
счастливое кодирование
Ответ 6
JsonFx.NET имеет сериализатор с открытым исходным кодом, который позволяет сериализовать/от строго типизированных классов, которые могут быть тем, что вы ищете, Вы можете контролировать, как даты сериализуются и переопределять многие аспекты сериализации. Он даже хорошо взаимодействует с Linq, поддерживая сериализацию анонимных объектов. API работает так же, как и XML-сериализация .NET.