2016-08-30 2 views
0

Я хочу назначить переменную для ответа json. Я хочу использовать эту переменную, чтобы повторить только выбранные данныеКак назначить переменную json-ответу

Это мой ответ:

{"code":"202","message":"Accepted","data":{"resultMap":{"D1509~H24":{"AppDay":"*","HosTown":"Colombo","SpecName":"Physiotherapist","HosName":"Western Infirmary Hospital (Pvt) Ltd","SpecializationId":"34","HosCode":"H24","AppDate":"Any","DocName":"MR M. HAJITH","DoctorNo":"D1509"},"D0625~H08":{"AppDay":"*","HosTown":"Colombo","SpecName":"Physiotherapist","HosName":"Park Hospital (Pvt) Ltd ","SpecializationId":"34","HosCode":"H08","AppDate":"Any","DocName":"MR JALIYA UDUWELLA","DoctorNo":"D0625"},"D1762~H16":

Это мой код, но я получаю сообщение об ошибке:

Undefined индекс : resultMap в C: \ WAMP \ WWW \ echanalling \ test.php

на

if (isset($_POST['submit'])) 
{ 
require 'gettoken1.php';         
      { 
$baseurl = 'http://202.124.173.189/api/v1/doctorAvailability';  
$curl = curl_init($baseurl); 

curl_setopt($curl, CURLOPT_POST, true); 
curl_setopt($curl, CURLOPT_HEADER, false); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); 
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-Type: application/json',"Authorization: Bearer $atoken")); 

// Set the POST arguments to pass to the Sugar server 
$rawPOSTdata = array(
    "type" => "private", 
    "hosID" => $_POST['hosMaptxt'], 
    "specID" => $_POST['specialityMaptxt'], 
    "date" => $_POST['date'], 
    "name" => '%'.$_POST['docname'].'%' 
); 
curl_setopt($curl, CURLOPT_POSTFIELDS, json_encode($rawPOSTdata));  

$response = curl_exec($curl); 
curl_close($curl); 
if (!$response) 
    { 
    die("Connection Failure.\n"); 

$result = json_decode($response,true);  

$json=$result['data']['resultMap']; 
$html=array(); 
$output[]="<table><tr> "; 
foreach($result['resultMap']as $data) 
{ 
    $output.="<td>".$data['SpecName']."</td>"; 
    $output.="<td>".$data['HosName']."</td>"; 
    $output.="<td>".$data['DocName']."</td>"; 
    $output.="<td>".$data['DoctorNo']."</td>"; 
    $output.="<td>".$data['AppDay']."</td>"; 
    $output.="<td>".$data['HosTown']."</td>"; 
      } 
      $output .="</tr></table>"; 
      echo $output;   
} 

curl_close($curl); 
if (isset($result->error)) 
    { 
    die($result->error_message."\n"); 
    } 
}  
?> 
+0

Показать, как вы получаете '$ result' – Justinas

ответ

0

Ваш вопрос не показывает достаточный полный и точный код, чтобы быть уверенным, но на первый взгляд можно предположить, что:

  1. $result = json_decode($response,true);, где вы получите содержимое ваших данных в формате JSON
  2. foreach($result['resultMap']as $data), где вы получите ошибку

Так что с # 1 выше приходит, что вы получите в $result должен выглядеть следующим образом:

[ 
    "code" => "202", 
    "message" => "Accepted", 
    "data" => [ 
    "resultMap" => [ 
     "D1509~H24" => [ 
     "AppDay" => "*", 
     ... 
     ], 
     "D0625~H08" => [ 
     "AppDay" => "*", 
     ... 
     ], 
     ... 
    ] 
    ] 
] 

После этого из # 2 это совершенно нормально, вы получаете сообщение об ошибке, пытающееся получить доступ к $result['resultMap'], который не является ключом 1-го уровня от $result.

Чтобы получить доступ к этой части данных, вы должны написать вместо этого $result['data']['resultMap'].

Смежные вопросы