Подтвердить что ты не робот

Сериализация/десериализация JSON в ядре ASP.Net

Поскольку нет JavaScriptSerializer, какую нативную реализацию можно использовать для этого?

Я заметил JsonResult и могу форматировать данные в JSON, но как мне десериализовать?

Или, может быть, мне не хватает некоторых зависимостей в project.json?

4b9b3361

Ответ 1

Вы можете использовать Newtonsoft.Json, это зависимость от Microsoft.AspNet.Mvc.ModelBinding, которая является зависимостью от Microsoft.AspNet.Mvc. Таким образом, вам не нужно добавлять зависимость в ваш project.json.

#using Newtonsoft.Json
....
JsonConvert.DeserializeObject(json);

Обратите внимание, что при использовании контроллера WebAPI вам не нужно иметь дело с JSON.

ОБНОВЛЕНИЕ ASP.Net Core 3.0

Json.NET был удален из общей платформы ASP.NET Core 3.0.

Вы можете использовать новые слои сериализатора JSON поверх высокопроизводительных Utf8JsonReader и Utf8JsonWriter. Он десериализует объекты из JSON и сериализует объекты в JSON. Выделение памяти минимально и включает поддержку чтения и записи JSON с Stream в асинхронном режиме.

Для начала используйте класс JsonSerializer в пространстве имен System.Text.Json.Serialization. См. документацию для получения информации и образцов.

Чтобы использовать Json.NET в проекте ASP.NET Core 3.0:

    services.AddMvc()
        .AddNewtonsoftJson();

Прочтите поддержку Json.NET в разделе Миграция с ASP.NET Core 2.2 до 3.0 Preview 2 для получения дополнительной информации.