Я пытаюсь разобрать JSON, но продолжаю получать ошибку неправильного формата. JSON, который я получаю от FoodData Central (API питания Министерства сельского хозяйства США), выглядит следующим образом:
{
dataType = "Survey (FNDDS)";
description = "Chicken thigh, NS as to cooking method, skin not eaten";
fdcId = 782172;
foodNutrients = (
{
amount = "24.09";
id = 9141826;
nutrient = {
id = 1003;
name = Protein;
number = 203;
rank = 600;
unitName = g;
};
type = FoodNutrient;
},
{
amount = "10.74";
id = "9141827";
nutrient = {
id = 1004;
name = "Total lipid (fat)";
number = 204;
rank = 800;
unitName = g;
};
type = FoodNutrient;
}
);
}
Мои структуры:
struct Root: Decodable {
let description: String
let foodNutrients: FoodNutrients
}
struct FoodNutrients: Decodable {
// What should go here???
}
Из JSON видно, что foodNutrients представляет собой массив безымянных объектов, каждый из которых имеет значения суммы: String, id: String и питательное вещество: Nutrient (у которого есть id, имя и т. д.). Однако, забывая объект Nutrient , я даже не могу разобрать суммы.
struct FoodNutrients: Decodable {
let amounts: [String]
}
Я не думаю, что это массив строк, но я понятия не имею, что будет указывать () в foodNutrients.
Как мне разобрать этот JSON. Я использую Swift 5 и JSONDecoder. Чтобы получить JSON, я использую JSONSerializer, а затем распечатываю JSON выше.