Я пытаюсь десериализовать фрагмент JSON с определенной структурой, например, так:
{
"label1": "value1",
"label2": [
[
[
"concept_id_1",
"concept_1"
],
score_1
],
[
[
"concept_id_2",
"concept_2"
],
score_2
],
……
],
"label3": "value3",
"label4": "value4"
}
Для чего бы то ни было, оценки - это числа с плавающей запятой, а все остальное - строка.Число возвращаемых понятий в «label2» является переменным.
Я пытаюсь десериализовать его с помощью JSON.net.Единственный контент, который меня действительно волнует, - это внутреннее гнездо массивов с меткой «label2», однако отсутствие меток внутри массивов блокирует меня на каждом шагу.
Я пробовал разные подходы, ноНаиболее успешным на данный момент, по-видимому, является следующий:
public class Parsed_JSON {
public string label1 { get; set; }
public ICollection<Full_Result> label2 { get; set; }
public string label3 { get; set; }
public string label4 { get; set; }
}
public class Full_Result {
public IList<string> values { get; set; }
public float score { get; set; }
}
Parsed_JSON result = JsonConvert.DeserializeObject<Parsed_JSON>(JSON);
Однако это не удается из-за ошибки:
Невозможно десериализовать текущий массив JSON (например, [1,2,3]) в тип 'JSON_Parsing + Full_Result', поскольку для корректной десериализации типу требуется объект JSON (например, {"name": "value"}).
Чтобы исправить эту ошибку, либо измените JSON на объект JSON (например, {"name ":" value "}) или измените десериализованный тип на массив или тип, который реализует интерфейс коллекции (например, ICollection, IList), например List, который можно десериализовать из массива JSON.JsonArrayAttribute также может быть добавлен к типу, чтобы заставить его десериализоваться из массива JSON.
В конечном итоге я постараюсь перебрать содержимое label2, чтобы я мог создать из них DataTable, например:итак:
concept_id_1 concept_1 score_1
concept_id_2 concept_2 score_2
Как я могу десериализовать этот JSON?