Php Json Decode - Valeur d'affichage des éléments de deuxième niveau
J'essaye de décoder le format JSON Mon point de terminaison API est https://api.reliableserver.host/api/landings
Et c'est la sortie
{
"success": true,
"data": [
{
"id": 1,
"primary_balance": "$4,184.37",
"primary_currency": "USD",
"secondary_balance": "¥0",
"secondary_currency": "JPY",
"tertiary_balance": "฿0.00",
"tertiary_currency": "THB",
"first_language": "ไทย",
"second_language": "English",
"footer_text": "a",
"created_at": "2020-10-26T07:45:49.000000Z",
"updated_at": "2020-10-28T05:31:04.000000Z",
"deleted_at": null
}
],
"message": "Landings retrieved successfully"
}
J'ai besoin de faire écho à des valeurs individuelles, par exemple: Solde principal: 4184,37 $
J'ai essayé d'utiliser ceci:
$url = "https://api.reliableserver.host/api/landings"; $obj = json_decode($url); echo $obj>primary_balance;
Mais cela n'a pas fonctionné, veuillez me guider ce que je fais de mal.
Réponses
Vous pouvez faire de cette façon:
$url = '{"success": true,"data": [{"id": 1,"primary_balance": "$4,184.37","primary_currency": "USD","secondary_balance": "¥0","secondary_currency": "JPY","tertiary_balance": "฿0.00","tertiary_currency": "THB","first_language": "ไทย","second_language": "English","footer_text": "a","created_at": "2020-10-26T07:45:49.000000Z","updated_at": "2020-10-28T05:31:04.000000Z","deleted_at": null}],"message": "Landings retrieved successfully"}';
$obj = json_decode($url, true);
echo $obj['data'][0]['primary_balance']; // output $4,184.37
Ci-dessus le code testé ici
Vous avez besoin de la méthode file_get_contents () pour obtenir les données JSON à partir de votre URL donnée.
$url = "https://api.reliableserver.host/api/landings"; $obj = json_decode(file_get_contents($url), true); echo $obj['data'][0]['primary_balance'];
// output $4,184.37
Fondamentalement, vous n'appelez cette API nulle part. S'il s'agit d'un point de terminaison ouvert (sans auth ni en-têtes, vous pouvez faire file_get_contents () ou je vous suggère d'utiliser curl . De plus, vous devez vérifier la structure des données de réponse, il a une clé 'data' qui est un tableau. vous devez utiliser foreach pour itérer sur la clé «data».
J'ai donné un exemple de réponse qui devrait fonctionner s'il n'y a qu'un seul élément dans les données.
$url = "https://api.reliableserver.host/api/landings"; $resp = file_get_contents($url); $obj= json_decode($resp);// will return in object form echo $obj->data[0]->primary_balance;
ou
$url = "https://api.reliableserver.host/api/landings"; $resp = file_get_contents($url); $obj= json_decode($resp, true); // will return in array form echo $obj['data'][0]['primary_balance'];
json_decode ()