В настоящее время я использую пакет nuget Newtonsoft.json
, но я бы хотел найти более быструю альтернативу. ServiceStack.Text
, похоже, разобрал его, но он возвращает JSON в другом формате, который я ожидаю. Есть ли способ изменить формат, в котором это возвращает объект в соответствии с тем, что я ожидаю?Alter output of ServiceStack.Text JSON Deserializer
Проблема заключается в том, что после того, как десериализации, response.fullName
возвращает «Joey круто», как ожидается Newtonsoft.json
но ServiceStack.Text
возвратит null
, поскольку формат отличается.
Могу ли я изменить формат вывода ServiceStack.Text
так, чтобы он соответствовал ожидаемому? Я хочу позвонить response.fullName
и получить «joey cool».
Вот мой код, используя ServiceStack.Text
компонент:
T response = a_response.Content.FromJson<T>();
Вот мой код, используя Newtonsoft.json
:
T response = JsonConvert.DeserializeObject<T>(a_response.Content);
Ниже приводится как JSON в тексте выглядит вывод:
{ "идентификатор пользователя": "fc7b4c4e0b6660c7daf711b1d17e0039", "EMAILADDRESS": "[email protected]", "FULLNAME": "Джоуи круто", " ВидСчета": "индивид", «createdDate ": 1440104822411, "PHONENUMBER": "15555555555", "часовой пояс": "Америка/Los_Angeles", "фото":" https://stringify.s3.amazonaws.com/users/fc7b4c4e0b6660c7daf711b1d17e0039-profile.jpg», "имя": "по умолчанию", "типа": "апи" }
Ниже, как отладчик показываетобъект:
Ниже, как ваша ServiceStack.Text
JSON десериализатор показывает объект ответа:
---- EDIT ---- Попробовал 4.0.62 от NuGet и это дает мне исключение.
Сообщение: Инициализатор типа для «ServiceStack.StringExtensions» сделал исключение. Ссылка на объект не установлено на экземпляр объекта, на ServiceStack.StringExtensions..cctor() [0x00017] в: 0
----- ----- РЕДАКТИРОВАТЬ
URL to a file containing the JSON class
Here's a video demonstrating the usage differences and the strange output
Когда я пытаюсь использовать 4.0.62 из NuGet, я получаю исключение. Это вопрос Хамарина? Я приложил больше подробностей об исключении выше. Сообщение: Инициализатор типа для «ServiceStack.StringExtensions» сделал исключение. Object Ref не установлен в экземпляр объекта в ServiceStack.StringExtensions..cctor() [0x00017] в <имя файла неизвестно>: 0 – LampShade
Вам необходимо [инициализировать клиент] (https://github.com/ServiceStackApps/HelloMobile/ blob/master/README.md # initializing-pcl-client), если у вас еще нет – mythz
Так что я получил эту работу, мне пришлось использовать ServiceStack.Client вместо стандартного. Но у меня все еще такая же проблема. JSON показывает неверно .... Он выводится в том же сломанном формате, что и компонент Xamarin. – LampShade