Json to C # неправильно десериализовал символ валюты - PullRequest
0 голосов
/ 08 ноября 2018

Я использую C # web.api с ядром .net 2.1. У меня есть свойство Json в файле appsetting.json, и когда он десериализуется в c #, через AddOptions, символ £ меняется на

Можно ли добавить параметр к AddJsonOptions, чтобы этот символ не был изменен?

JSON "SomeProperty": "фунт £",

C # Свойство SomeProperty = "фунт "

Я решил это: открыв файл в блокноте и сохранив его в кодировке UTF-8. При сохранении файла в VS он сохранил кодировку UTF-8. Не уверен, что Visual Studio делает при создании файла appsetting, но в прошлом это было проблемой. github.com/aspnet/Configuration/issues/241 Для записи я использую VS2017 15.8.4 на windows 10

AppSettings

{
  "SftpConfigList": {
    "SftpConfigs": [
      {
        "Host": "somehost1",
        "Username": "foo",
        "Password": "okokokok"
      },
      {
        "Host": "somehost2",
        "Username": "bar",
        "Password": "pass£££word"
      }
    ]
  }
}


namespace WebApplication1
{
    public class SftpConfigListDto
    {
        public SftpConfigDto[] SftpConfigs { get; set; }
    }

    public class SftpConfigDto
    {
        public string Host { get; set; }
        public string Username { get; set; }
        public string Password { get; set; }
    }
}

ЗАПУСК

public void ConfigureServices(IServiceCollection services)
{
    services.AddOptions();
    services.Configure<SftpConfigListDto>(Configuration.GetSection("SftpConfigList"));
    services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...