Код: Выделить всё
{
"Programs": [
{
"name": "program 1",
"LoggingPath": "C:\...",
"Emails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
},
{
"name": "program 2",
"LoggingPath": "C:\...",
"Emails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
]
}
Я использовал https ://json2csharp.com, чтобы преобразовать Json в этот код C#:
Код: Выделить всё
public class Program
{
public string name { get; set; }
public string LoggingPath { get; set; }
public List Emails { get; set; }
}
public class Root
{
public List
Programs { get; set; }
}
Код: Выделить всё
public static void Main(string[] args)
{
IConfiguration configuration;
configuration = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json")
.Build();
JToken JtokenConfig = Serialize(configuration);
Root myDeserializedClass = JsonConvert.DeserializeObject(JtokenConfig.ToString());
}
Newtonsoft.Json.JsonSerializationException: 'Невозможно десериализовать текущий объект JSON (например, {"name":"value"}) в тип 'System.Collections.Generic.List`1[LogAnalyzer.Model+Program]', поскольку для этого типа требуется массив JSON (например, [1,2,3]) для правильной десериализации.
Чтобы исправить эту ошибку, либо измените JSON на массив JSON (например, [1,2,3]), либо измените десериализованный тип, чтобы он был обычный тип .NET (например, не примитивный тип, такой как целое число, и не тип коллекции, такой как массив или список), который можно десериализовать из объекта JSON. JsonObjectAttribute также можно добавить к типу, чтобы заставить его десериализовать из объекта JSON.
Я не могу изменить Json на массив (без «Программы»

Я также пытался использовать этот Json, чтобы избавиться от массива и использовать динамическое свойство C#. к десериализовали разные имена объектов, но десериализация также не удалась.
Код: Выделить всё
{
"Programs": {
"program 1": {
"LoggingPath": "test",
"Emails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
},
"program 2": {
"LoggingPath": "test",
"Emails": [
"[email protected]",
"[email protected]",
"[email protected]"
]
}
}
}
Надеюсь, кто-нибудь здесь сможет мне помочь или подскажи.
Подробнее здесь: https://stackoverflow.com/questions/751 ... sharp-list