У меня проблема, когда объект массива в моем config.json возвращается как пустой. В следующем коде gridFields вернется как пустой.
{"grids": [{
"name": "Grid1"
"gridFields": [
{
"Name": "Something",
"Label": "Something"
},
{
"Name": "SomethingElse",
"Label": "SomethingElse"
}]
},
{"name": "Grid2"
"gridFields": [
{
"Name": "Something",
"Label": "Something"
}]
}]
}
У меня есть соответствующие POCO, и я убедился, что имена совпадают следующим образом.
public class Grid
{
public string name { get; set; }
public gridFields gridFields {get; set;}
}
public class gridFields
{
public List<gridField> GridFields { get; set; } = new List<gridField>();
public int Count => GridFields.Count();
public IEnumerator GetEnumerator()
{
return GridFields.GetEnumerator();
}
}
public class gridField
{
public string Name { get; set; }
public string Label { get; set; }
}
В моем запуске у меня есть следующее
public void ConfigureServices(IServiceCollection services)
{ services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
var config = new List<Grid>();
Configuration.Bind("grids", config);
services.AddSingleton(config);
}
config.gridFields не содержит значений. У меня есть значения для имени, но не для gridFields. Даже если я создаю список gridFields, он возвращается нулевым.
Мой вопрос заключается в том, есть ли какой-то способ, следуя этому текущему коду, чтобы я мог получить данные из этого массива в массиве, или мне нужно сделать что-то совершенно другое. Почему ядро .net не может связать каждый объект, с которым он сталкивается, под родителем?





В примере json отсутствует , после имени каждой сетки.
{
"name": "Grid2",
"gridFields":
[{
"Name": "Something",
"Label": "Something"
}]
}
У вас есть список gridField прямо под сеткой в Json.
Однако в Кодексе вы используете другой объект, GridFields.
Вы должны удалить класс gridfiels и использовать список gridField в классе Grid:
public class Grid
{
public string name { get; set; }
public List<gridField> gridFields {get; set;}
}
Я сокращал json. Это было правильно в моем коде. Внесение предложенного изменения кода сработало. Обидно, что он не может сам определить, что такое базовый тип.