Я работаю с 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());
Комментариев нет:
Отправить комментарий