Я получаю эту строку на моем контроллере:Анализировать строку объект
"[{\"id\":12},{\"id\":2,\"children\":[{\"id\":3},{\"id\":4}]}]"
Я хочу, чтобы разобрать это, и создать один Еогеасп внутри другого Еогеаспа, чтобы получить родитель и ребенок.
Я пытался это:
var object = JsonConvert.DeserializeObject<MenuJson>(json);
где MenuJson является:
public class MenuJson
{
[JsonProperty("id")]
public string id { get; set; }
[JsonProperty("children")]
public List<string> children { get; set; }
}
Я получил эту ERRO:
Не может десериализации текущего массива JSON (например, [1,2 , 3]) в тип «AIO.Controllers.AdminMenuController + MenuJson», потому что для десериализации корректно требуется тип JSON (например, {«name»: «value»}).
Для исправления этой ошибки либо смените JSON на объект JSON (например, {"name": "value"}), либо измените десериализованный тип на массив или тип, реализующий интерфейс коллекции (например, ICollection, IList) как List, который можно десериализовать из массива JSON. JsonArrayAttribute также может быть добавлен к типу, чтобы заставить его десериализоваться из массива JSON.
Путь '', строка 1, позиция 1.
И я попробовал другой подход:
var objects = JsonConvert.DeserializeObject<JObject>(json);
foreach (var property in objects)
{
var id = property.Value;
foreach (var innerProperty in ((JObject)property.Value).Properties())
{
var child = property.Value;
}
}
И я получил ошибки, когда я пытаюсь преобразовать строку.
Мой вопрос: как я могу заставить это работать?
И для моей строки, какой подход является лучшим для моих нужд?
** Что сказать ошибка **? – SLaks
см. Мое редактирование, я добавил ошибку – BrunoRamalho