Я работаю над веб-API, разработанным в Visual Studio с использованием C #, и использую Swagger для просмотра документации кода и игры с API. Комментарии к коду содержат пример ввода:
/// ## Examples
/// * An array of guids:
/// {"SomeGuids":["xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx","xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"]}
А на странице API Swagger пример отображается, как и ожидалось. Однако если я скопирую строку, отображаемую в документации Swagger, и использую ее в качестве входных данных для API, двойные кавычки изменятся. И когда я использую Newtonsoft для десериализации строки, она выдает исключение.
Например, если я скопирую входную строку из документации Swagger, вставлю GUID для x и отправлю его в API:
{"SomeGuids":[“1234abcd-1234-abcd-1234-1234abcd1234”]}
Затем внутри своего кода API я пытаюсь десериализовать входную строку:
MyDataClass myDataClass = JsonConvert.DeserializeObject<MyDataClass>(TheInputString);
Выдает исключение Newtonsoft.Json.JsonReaderException с этим сообщением:
При синтаксическом анализе значения обнаружен неожиданный символ: «. Дорожка
SomeGuids, строка 1, позиция 14.
Я пробовал одинарные кавычки, избегая двойных кавычек и вставляя их в виде простого текста.
Что я могу сделать, чтобы Newtonsoft не путался с двойными кавычками после того, как я скопировал строку из документации Swagger?