JSON은 다양한 프로그래밍 언어에서 사용될 수 있으므로 PHP는 JavaScript에서 사용할 JSON 문자열을 출력하는 등 소규모 데이터 전송에 사용할 수 있습니다. PHP에서는 json_decode()를 사용하여 표준화된 문자열의 문자열에서 JSON 객체를 구문 분석하고, json_encode()를 사용하여 JSON 객체에서 표준화된 문자열의 문자열을 생성할 수 있습니다.
예:
$json = '{"a":1, "b":2, "c":3, "d":4, "e":5 }';
var_dump(json_decode($json));
var_dump(json_decode($json,true));
출력:
객체(stdClass)#1 (5) {
["a"] => int(1)
["b"] => int(2)
[ "c"] => int(3)
["d"] => int(4)
["e"] => int(5)
}
배열( 5) {
["a"] => int(1)
["b"] => int(2)
["c"] => >["d"] => int(4)
["e"] => int(5)
}
$arr = 배열('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5 );
echo json_encode($arr);
출력: {"a":1,"b":2,"c":3,"d":4,"e":5}
1.json_decode(), 문자를 JSON으로 변환합니다. 일반적으로 Javascript에서 보낸 데이터를 받을 때 사용됩니다.
$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"744348666" ,"mail":"nieweihf@163.com","xx":"xxxxxxx"}}';
$web=json_decode($s);
echo '웹사이트 이름:'.$web-> ;웹 이름.'
웹사이트: '.$web->url.'
연락처: QQ-'.$web->contact->qq.' MAIL: '.$웹->연락처->메일;
?>
위의 예에서는 먼저 변수 s를 정의한 다음 json_decode()를 사용하여 JSON 객체로 구문 분석하고, JSON, XML 사용법으로 판단하면 JSON 방식으로 사용할 수 있습니다. 및 배열 구현 기능은 유사하고 서로 관련된 일부 데이터를 저장할 수 있지만 개인적으로 JSON이 사용하기 쉽고 JSON과 JavaScript를 사용하여 데이터 공유가 가능하다고 생각합니다.
2.json_encode(), JSON을 문자로 변환. 이는 일반적으로 AJAX 애플리케이션에서 JSON 개체를 문자열로 변환하고 이를 Javascript로 출력하는 데 사용됩니다.
$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"744348666" ,"mail":"nieweihf@163.com","xx":"xxxxxxx"}}';
$web=json_decode($s);
echo json_encode($web);
? >
2.PHP JSON을 배열로
$s='{"webname":"homehf","url":"www.homehf.com","qq":"744348666"}';
$web=json_decode($s); //문자를 JSON으로 변환
$arr=array();
foreach($web as $k=>$w) $arr[$k]= $ w;
print_r($arr);
?>
위 코드에서는 JSON 개체가 배열로 변환되었습니다. 그러나 중첩된 JSON인 경우 위 코드는 당연히 아무것도 할 수 없습니다. 그런 다음 중첩된 JSON을 해결하는 함수를 작성합니다. ,
$s='{"webname":"homehf","url":"www.homehf.com","contact":{"qq":"744348666" ,"mail":"nieweihf@163.com","xx":"xxxxxxx"}}';
$web=json_decode($s);
$arr=json_to_array($web);
print_r($arr);
function json_to_array($web){
$arr=array();
foreach($web as $k=>$w){
if(is_object ($w)) $arr[$k]=json_to_array($w); //타입이 객체인지 판단
else $arr[$k]=$w;
}
return $arr ;
}
?>