Есть ли какой-нибудь вспомогательный класс Json Serialization в .NET BCL? - PullRequest
18 голосов
/ 24 декабря 2008

Мне нужно сериализовать / десериализовать некоторые объекты в / из строки и передать их как просто непрозрачные данные. Я могу использовать XmlSerializer для этого, но сгенерированная строка выглядит неуклюжей и длинной. Итак, есть ли какой-нибудь лаконичный сериализатор, доступный в .NET?

Первое, что приходит мне в голову, это то, что, возможно, в .NET должен быть JSON Serializer, но я не могу его найти. Существует ли какой-либо готовый подход в .NET для преобразования объекта в / из краткой строки?

Ответы [ 6 ]

26 голосов
/ 24 декабря 2008

Есть два;

Традиционно, они не на 100% совместимы друг с другом, особенно re DateTime; DCJS использует (IIRC) буквальную строку; JSS использует new - и ни один из них не может правильно читать.

Конечно, если текст непрозрачный, вы также можете использовать любой лаконичный двоичный сериализатор и просто закодировать его в base-64; например, protobuf-net довольно кратко. Но использование JSON минимизирует внешний код, необходимый на каждом конце, поэтому вполне может быть вашим лучшим выбором.

10 голосов
/ 24 декабря 2008

Json.Net - это библиотека JSON для .NET. Он доступен в CodePlex.

4 голосов
/ 19 августа 2010

У меня есть очень быстрый с открытым исходным кодом JsonSerializer , который может сериализовать любой тип POCO или DataContract, включая интерфейсы анонимного и позднего связанного типа и т. Д.

Базовый пример

var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json); 
0 голосов
/ 07 февраля 2009

JsonFx.NET имеет сериализатор с открытым исходным кодом, который позволяет сериализацию в / из строго типизированных классов, что может быть тем, что вы ищете. Вы можете контролировать сериализацию дат и переопределять многие аспекты сериализации. Он даже хорошо взаимодействует с Linq, поддерживая сериализацию анонимных объектов. API работает так же, как сериализация .NET XML.

0 голосов
/ 24 декабря 2008

просто используйте свой собственный API ... его легко создать JSON ... но вы также можете использовать библиотеки JSON, такие как JSON.NET ..

счастливое кодирование

0 голосов
/ 24 декабря 2008

LINQ To Json может сериализоваться и десериализоваться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...