Importowanie wymaganych przestrzeni nazw:
Na początku upewnij się, że importujesz odpowiednie przestrzenie nazw:
using Microsoft.Extensions.DependencyInjection;
using System.Text.Json;
Konfiguracja serializacji i deserializacji JSON:
W metodzie ConfigureServices możesz dostosować ustawienia serializacji i deserializacji JSON za pomocą System.Text.Json.JsonSerializerOptions. Poniżej znajduje się przykład konfiguracji:
public void ConfigureServices(IServiceCollection services)
{
// Inne konfiguracje
services.AddControllers()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase; // Notacja CamelCase
options.JsonSerializerOptions.WriteIndented = true; // Wcięcia w JSON
options.JsonSerializerOptions.IgnoreNullValues = true; // Ignoruj null w JSON
});
}
W tym przykładzie dostosowujemy kilka ustawień serializacji i deserializacji JSON za pomocą System.Text.Json.JsonSerializerOptions:
PropertyNamingPolicy: Określa, jakie konwencje nazewnicze (na przykład CamelCase) mają być stosowane do nazw właściwości w JSON.WriteIndented: Określa, czy JSON ma być sformatowany z wcięciami, co ułatwia czytanie.IgnoreNullValues: Określa, czy mają być uwzględniane właściwości o wartości null w JSON.Ustawienia globalne vs. lokalne:
Możesz dostosowywać ustawienia serializacji i deserializacji JSON na poziomie globalnym (dla wszystkich akcji kontrolerów) lub na poziomie lokalnym (dla konkretnej akcji lub kontrolera). Ustawienia lokalne można przekazać jako argumenty do atrybutów kontrolera lub akcji.
Na przykład, możesz zastosować atrybut [JsonPropertyName] do właściwości modelu, aby dostosować nazwy właściwości w sposób lokalny.
public class MyModel
{
[JsonPropertyName("customProperty")]
public string CustomProperty { get; set; }
}
To są podstawowe kroki do dostosowywania ustawień serializacji i deserializacji JSON w ASP.NET Core Web API, korzystając wyłącznie z wbudowanego System.Text.Json.JsonSerializer. Dostosowanie tych ustawień pozwala na bardziej elastyczne zarządzanie formatem JSON generowanym przez Twoje API.