Если речь идет о возврате значений
Если в идентификаторе бота есть двойная кавычка, сериализатор json избежит его, и проблем быть не должно.
Я подозреваю, что вы неправильно читаетеJSON. Некоторые инструменты , включая окна Visual Studio Watch и Local Variables и окно консоли, могут отображать экранированные символы "
без обратной косой черты и могут выглядеть так, как если бы строка была { "bot_id":"XX"XX" }
, тогда как на самом деле это { "bot_id":"XX\"XX" }
.
Кроме того, возможно ли, что XX"XX
равен XX''XX
(с двумя одинарными кавычками)?
В любом случае JsonCovert
будет правильно сериализовать строку.
Если речь идет о потреблении json
{ "bot_id":"XX"XX" }
- это недопустимый фрагмент json.
Я думаю, что здесь есть два варианта
Исправить json (предпочтительно)
Попросить автора исправить их полезную нагрузку.
Предварительная обработка json
Вы можете принять json, исправить известные проблемы и только затем передать его в десериализатор json.
ActionResult<string> Post([FromBody] string botJson) // accept body as string
{
string fixedJson = fixMyJson(botJson);
var bot = JsonConvert.SerializeObject<Bot>();
...
или
async Task<ActionResult<string>> Post()
{
HttpContent requestContent = Request.Content;
string botJson = await requestContent.ReadAsStringAsync();
string fixedJson = fixMyJson(botJson);
var bot = JsonConvert.DeserializeObject<Bot>(fixedJson);
...