在php中读取Json Curl内容的结果
我在下面有一个json输出,我正在尝试获取它的内容在php中读取Json Curl内容的结果,php,json,curl,Php,Json,Curl,我在下面有一个json输出,我正在尝试获取它的内容 {"content":"people", "nextLink":"https://example.com/people?$skip=3", "value":[ { "id":"100","displayName":"Room Rainier", "Addresses":[{"location":"12 orlando street","Spore":8.0}], "phones":[{"type":"home","number":"10000
{"content":"people",
"nextLink":"https://example.com/people?$skip=3",
"value":[
{
"id":"100","displayName":"Room Rainier",
"Addresses":[{"location":"12 orlando street","Spore":8.0}],
"phones":[{"type":"home","number":"10000000000"}],
"personType":{"class":"new","subclass":"Room1"}
},
{
"id":"102","displayName":"Tony Blur",
"Addresses":[{"location":"19 saco street","Spore":4.0}],
"phones":[{"type":"business","number":"1080000000"}],
"personType":{"class":"Other","subclass":"Room2"}
},
{
"id":"103","displayName":"veronica huges",
"Addresses":[{"location":"6 nano street","Spore":7.0}],
"phones":[{"type":"business","number":"111000000"}],
"personType":{"class":"old","subclass":"Room5"}
}]}
下面是我在PHP中工作的Json Curl
<?php
session_start();
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://example.com/people",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
//CURLOPT_CUSTOMREQUEST => "GET",
//CURLOPT_POSTFIELDS => "$data",
CURLOPT_HTTPHEADER => array(
"authorization: Bearer --my bearer goes here--"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
$res=json_decode($response);
$res1=json_decode($response, true);
$js = json_decode($response, true);
echo '<pre>' . print_r($response, true) . '</pre>';
$re = $js['value'];
foreach ($re as $value1) {
echo $value1['id'];
echo '<br>';
echo $value1['Addresses']['location'];
echo '<br>';
echo $value1['phones']['type'];
echo '<br>';
}
if ($err) {
echo "cURL Error #:" . $err;
} else {
//echo $response;
}
?>
我的成功
我能够为每个循环获取id**(echo$value1['id'])***
的所有值
我的问题
1.)我无法为每个循环分别获取地址位置**(echo$value1['Addresses']['location'])**
和电话类型**(echo$value1['phones']['type'])**
的值,因为它没有显示任何内容
2.)json文件具有下一个链接选项
“下一个链接”:https://example.com/people?$skip=3“
如何基于链接显示更多用户/人员数据。谢谢地址和电话都是数组,因此如果您想获得第一个地址,可以使用索引0,或者如果有多个地址或电话,可以使用循环获取所有地址或电话 如果有下一个链接,您应该请求下一个链接,只需在下一个链接中再次使用curl 如果您为此创建一个函数,然后使用下一个链接再次调用该函数,则会更容易
foreach ($re as $value1) {
/**
* To get the first address and phone use index 0
*/
echo $value1['Addresses'][0]['location'];
echo $value1['phones'][0]['type'];
/**
* Loop to get all addresses and phones
*/
foreach($value1['Addresses'] as $address) {
echo $address['location'];
}
foreach($value1['phones'] as $phone) {
echo $phone['type'];
}
}