问题
How can I read a JSON data response using php? The response t comes after user authentication done from a third party. Primarily, I just want displayName
and preferredUsername
data.
Json response:
{
"stat": "ok",
"profile": {
"providerName": "testing",
"identifier": "http://testing.com/58263223",
"displayName": "testing",
"preferredUsername": "testing",
"name": {
"formatted": "testing"
},
"url": "http://testing.com/testing/",
"photo": "https://securecdn.testing.com/uploads/users/5826/3223/avatar32.jpg?1373393837",
"providerSpecifier": "testing"
}
}
回答1:
You can use the json_decode
(http://php.net/manual/en/function.json-decode.php) function to decode your result then retrieve the value:
$json_data = '{
"stat": "ok",
"profile": {
"providerName": "testing",
"identifier": "http://testing.com/58263223",
"displayName": "testing",
"preferredUsername": "testing",
"name": {
"formatted": "testing"
},
"url": "http://testing.com/testing/",
"photo": "https://securecdn.testing.com/uploads/users/5826/3223/avatar32.jpg?1373393837",
"providerSpecifier": "testing"
}
}';
$json = json_decode($json_data);
echo $json->profile->displayName;
echo $json->profile->preferredUsername;
回答2:
<?php
$json='{
"stat": "ok",
"profile": {
"providerName": "testing",
"identifier": "http://testing.com/58263223",
"displayName": "testing",
"preferredUsername": "testing",
"name": {
"formatted": "testing"
},
"url": "http://testing.com/testing/",
"photo": "https://securecdn.testing.com/uploads/users/5826/3223/avatar32.jpg?1373393837",
"providerSpecifier": "testing"
}
}';
$data=json_decode($json ,true);
$preferredUsername=$data['profile']['preferredUsername'];
$displayName=$data['profile']['displayName'];
?>
回答3:
json_decode is what you're looking for:
$json = '[
{
"displayName": "testing",
"preferredUsername": "testing",
}
]';
$jsonArray = json_decode($json);
foreach($jsonArray as $value){
$displayName = $value->Display Name;
$preferredUsername = $value->Preferred User;
}
来源:https://stackoverflow.com/questions/17865544/read-json-data-response-using-php