Witam
Mam pytanie do bardziej doświadczonych. Próbuję zdeserializować JSON przychodzącego z API. Niestety zmienna elementList jest pusta mimo, że response z API zwraca dane. Dopóki w bazie nie było danych z polskimi znakami wszystko działało, po ich wprowadzeniu deserializacja nie udaje się. Domyślam się że chodzi o ustawienie kodowania na utf-8. Jak można to zrobić?
public class RestServiceElements : IRestServiceElements
{
private HttpClient client;
private JsonSerializerOptions serializerOptions;
public ElementsList elementsList { get; private set; }
public RestServiceElements()
{
client = new HttpClient();
serializerOptions = new JsonSerializerOptions
{
Encoder = JavaScriptEncoder.UnsafeRelaxedJsonEscaping,
PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
WriteIndented = true
};
}
public async Task<ElementsList> RefreshDataAsync()
{
elementsList = new ElementsList();
Uri uri = new Uri(string.Format(Constants.ElementsRestUrl, string.Empty));
try
{
HttpResponseMessage response = await client.GetAsync(uri);
if (response.IsSuccessStatusCode)
{
string content = await response.Content.ReadAsStringAsync();
elementsList = JsonSerializer.Deserialize<ElementsList>(content, serializerOptions);
}
}
catch (Exception ex)
{
Debug.WriteLine(@"\tERROR {0}", ex.Message);
}
return elementsList;
}
}