Json의 데이터 형식은 배열 array 이다.
1) Json 데이터를 아래와 같이 구성하여 보낼 수 있다.
1-1) PHP 5.6 에서는 array( array( array( ) ) ) 형태로 배열 작성을 해야 한다.
$json_ = array(
"aaa"=>"AAA",
"aab"=>"AAB",
"bbb"=>array("bbc"=>"BBC", "bbd"=>"BBD", "bbe"=>"BBE"),
"ccc"=>"CCC",
"eee"=>array("eef"=>"EEF", "eeg"=>"EEG", "eeh"=>"EEH"),
"fff"=>array("ggg"=>array("ggh"=>"GGH","ggi"=>"GGI"), "hhh"=>"HHH", "iii"=>"III"),
"jjj"=>"JJJ"
);
1-2) 이것은 PHP에서 다음과 같이 입력할 수도 있다.
$json_[aaa] = "AAA";
$json_[aab] = "AAB";
$json_[bbb][bbc] = "BBC";
$json_[bbb][bbd] = "BBD";
$json_[bbb][bbe] = "BBE";
$json_[ccc] = "CCC";
$json_[eee][eef] = "EEF";
$json_[eee][eeg] = "EEG";
$json_[eee][eeh] = "EEH";
$json_[fff][ggg][ggh] = "GGH";
$json_[fff][ggg][ggi] = "GGI";
$json_[fff][hhh] = "HHH";
$json_[fff][iii] = "III";
$json_[jjj] = "JJJ";
1-3) 반복문 : for (), while() 안에서
for() {
$json[rates][] = array("a"=>$aaa, "b"=>$bbb, "c"=>$ccc);
}
=> 이것을 인코딩하면 다음과 같이 표시된다.
---------------------
$json = json_encode($json,JSON_UNESCAPED_UNICODE);
print_r($json);
---------------------
{"rates":[{"a":"aaa","b":"bbb","c":"ccc"},{"a1":"aaa1","b1":"bbb1","c1":"ccc1"},{"a2":"aaa2","b2":"bbb2","c2":"ccc2"},{"a3":"aaa3","b3":"bbb3","c3":"ccc3"}]}
2) Json의 데이터는 다음과 같이 php에서 받을 수 있다.
2-1) 넘어오는 변수명을 알고 있으면 다음과 같이 받을 수 있다.
$aaa = $json_[aaa] ;
$aab = $json_[aab] ;
$bbc = $json_[bbb][bbc] ;
$bbd = $json_[bbb][bbd] ;
$bbe = $json_[bbb][bbe] ;
$ccc = $json_[ccc] ;
$eef = $json_[eee][eef] ;
$eeg = $json_[eee][eeg] ;
$eeh = $json_[eee][eeh] ;
$ggh = $json_[fff][ggg][ggh] ;
$ggi = $json_[fff][ggg][ggi] ;
$hhh = $json_[fff][hhh] ;
$iii = $json_[fff][iii] ;
$jjj = $json_[jjj] ;
2-2) 넘어오는 변수명을 모르면 다음과 같이 받을 수 있다.
while(list($key,$value)=each($json_)) {
$data_txt .= "$key : $value\n";
while(list($key2,$value2)=each($value)) {
$data_txt .= "-> $key2 : $value2\n";
while(list($key3,$value3)=each($value2)) {
$data_txt .= "---> $key3 : $value3\n";
}
}
}
2-3) 넘어오는 변수명을 모를때 다음으로도 받을 수 있다.
foreach($json_ as $key,$value) {
$data_txt .= "$key : $value\n";
foreach($value as $key2,$value2) {
$data_txt .= "-> $key2 : $value2\n";
foreach($value2 as $key3,$value3) {
$data_txt .= "---> $key3 : $value3\n";
}
}
}
3. Json data를 받고서 결과값 리턴하기
if ( !$save_check ) {
$re_[result] = "error";
$re_[r_msg] = "저장에 실패했습니다.";
$json = json_encode($re_, JSON_UNESCAPED_UNICODE);
print_r($json);
}
else {
$re_[result] = "ok";
$re_[r_msg] = "저장에 성공했습니다.";
$json = json_encode($re_, JSON_UNESCAPED_UNICODE);
print_r($json);
}
=> 이것은 다음과 같이 표시된다.
{"result":"ok","r_msg":"저장에 성공했습니다."}
4. 리턴받은 결과값을 변수로 받기, 배열로 받기.
---------------
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
---------------
$result = curl_exec($ch);
$data = json_decode($result, true);
echo "aaa: ".$data[aaa]."<br>";
//echo "bbb: ".$data[bcde][0]["bbb"]."<br>";
//echo "ccc: ".$data[bcde][0]["ccc"]."<br>";
//echo "ddd: ".$data[bcde][0]["ddd"]."<br>";
foreach ($data['bcde'] as $key => $value){
echo $value['bbb']." / ";
echo $value['ccc']." / ";
echo $value['ddd']." /<br> ";
};
댓글 없음:
댓글 쓰기