У меня есть API, который дает мне результаты в этом формате:
{1 item
"items":[3 items
0:{12 items
"sugar_g":0
"fiber_g":0
"serving_size_g":396.893
"sodium_mg":246
"name":"prime rib"
"potassium_mg":720
"fat_saturated_g":43.7
"fat_total_g":107.7
"calories":1383.1
"cholesterol_mg":323
"protein_g":88.6
"carbohydrates_total_g":0
}
1:{12 items
"sugar_g":3.6
"fiber_g":2.3
"serving_size_g":100
"sodium_mg":587
"name":"pizza"
"potassium_mg":217
"fat_saturated_g":4.5
"fat_total_g":9.8
"calories":262.9
"cholesterol_mg":16
"protein_g":11.4
"carbohydrates_total_g":32.9
}
2:{12 items
"sugar_g":1.4
"fiber_g":1.5
"serving_size_g":100
"sodium_mg":329
"name":"mashed potatoes"
"potassium_mg":47
"fat_saturated_g":0.7
"fat_total_g":4.2
"calories":114
"cholesterol_mg":0
"protein_g":2
"carbohydrates_total_g":16.8
}
]
}
как я могу извлечь эти данные, чтобы хранить их в переменных?
я пробовал это, но дайте мне только один результат
$jsonDecoded = json_decode($response,true);
foreach($jsonDecoded['items'] as $item){
$sugar = $item['sugar_g'];
$calories = $item['calories'];
$name = $item['name'];
$serving_size = $item['serving_size_g'];
}
чего я пытаюсь достичь, так это то, что я могу извлечь все сахара, калории, имя и т. д.
это похоже на JSON, но это не действительный JSON, это похоже на копию из инструментов разработчика или консоли, не так ли?
Это код API: $curl = curl_init(); curl_setopt_array($curl, [ CURLOPT_URL => "calorieninjas.p.rapidapi.com/v1/…", CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, ]); $ответ = curl_exec($curl); $ ошибка = curl_error ($ завиток); curl_close ($ завиток); if ($err) { echo "Ошибка cURL #:" . $ошибка; } еще { эхо $ответ; }
Да, похоже, что этот API возвращает JSON. Так что декодируйте его, а затем var_dump полученного объекта, если вы не уверены, с какой структурой имеете дело.
Предоставьте достаточно кода, чтобы другие могли лучше понять или воспроизвести проблему.






когда вы передаете true в функцию json_decode(), это будет массив, поэтому вам нужно получить доступ как к массиву, и есть несколько данных, поэтому вам нужен цикл.
$jsonDecoded = json_decode($response,true);
foreach(jsonDecoded['items'] as $item){
echo $item['sugar_g'];
}
я получил уведомление: неопределенный индекс: Sugar_g в строке
Вам нужно прочитать все пункты?
может быть 6-7 элементов, таких как имя, калории, углеводы, жиры, белки, сахар, serve_size_g
отредактированный ответ, он должен работать
как я могу получить доступ ко всем элементам??
Какой формат был до того, как вы его напечатали? Это был JSON? В любом случае, теперь, когда у вас есть объект, вам просто нужно
loopitems, а затем получить доступ к дополнительной информации. что ты уже испробовал?