GOOGLE ADS

воскресенье, 1 мая 2022 г.

Почему Json(obj) преобразует апостроф в \u0027?

Я работаю с ASP.NET MVC 5, и есть метод действия, который возвращает JsonResult.

// Sample code
public JsonResult GetBookByISBN(int isbn)
{
return Json(new { book = "It's a Battlefield" })
}

Однако возвращенный Json

{"book":"It\u0027s a Battlefield"}

После некоторых исследований я понимаю, что \u0027это апостроф в Unicode, однако я не понимаю, почему его нужно преобразовать в Unicode, поскольку я видел строки Json, в которых используется ' внутри значения. Я попытался избежать этого, добавив \ перед ', но это ничего не дало.

Подводя итог моему вопросу, это нормальное поведение для сериализации объекта в Json? В чем причина и есть ли способ это исправить? Я не хочу усложнять десериализацию, если это так.

Я был бы признателен, если бы кто-нибудь помог мне понять, что происходит.


Решение проблемы

Вы используете System.Text.Json.JsonSerializer. Вы можете жить как есть, так как это не влияет на результат, но я рекомендую использовать Newtonsoft.Json

using Newtonsoft.Json.Serialization;
builder.Services.AddControllers()
.AddNewtonsoftJson(options =>
options.SerializerSettings.ContractResolver =
new CamelCasePropertyNamesContractResolver());

Комментариев нет:

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...