2016-06-20 2 views
0

Я использую newtonsoft dll для сериализации объекта для MySql Db.json.net serilalization char и deserialize неожиданное значение

Когда я сериализации использование мангалов:

JsonConvert.SerializeObject(value, typeof(char)) 

тогда, когда я получить доступ к объекту я использую:

var value = JsonConvert.DeserializeObject<Object>(json); 

Теперь тип значения является строка.

I Ожидается, что тип будет char, а не строка.

Если я сериализую любой другой тип типа int, string, uint, bool, enum и т. Д. И использую DeserializeObject с общим объектом, я получаю реальный тип.

Итак, существует способ сериализации Char и когда Deserialize с общим объектом i get char, а не string?

Thank!

+1

В JSON нет типа данных 'char', поэтому символ сериализуется в строку длины 1. При десериализации вы должны указать тип. – Blorgbeard

ответ

0

Прежде всего, я работаю с библиотекой JSON от Newtonsoft более двух лет и при сериализации объекта я никогда не определял второй параметр, и до сих пор у меня не было никаких проблем.

Вам необходимо десериализовать объект Json, указав целевой тип. Поэтому, если вы ожидаете, что это будет символ в конце, ваш код должен быть следующим:

var value = //somwthing 
var json = JsonConvert.SerializeObject(value, typeof(char)); 
value = JsonConvert.DeserializeObject<char>(json); 
Смежные вопросы