PHP 개발에서 json을 사용하는 이유는 프로그램과 JS 함수 간의 데이터 상호 작용에 ajax 객체가 자주 사용되기 때문입니다. JS는 PHP의 배열을 인식하지 못하기 때문에 PHP는 JS의 배열이나 객체를 인식하지 못합니다. Json은 이 문제를 매우 잘 해결합니다.
JSON 소개
JSON(JavaScript 개체 표기법)은 가벼운 데이터 교환 형식입니다. 이는 JavaScript의 하위 집합을 기반으로 하며 이는 JavaScript가 Json을 직접 읽을 수 있다는 것을 의미하며 이는 매우 편리합니다.
Json의 구체적인 형식은 다음과 같습니다.
1. 개체
개체는 "이름/값" 쌍의 순서가 지정되지 않은 모음입니다. 객체는 "{"(왼쪽 대괄호)로 시작하고 "}"(오른쪽 대괄호)로 끝납니다. 각 "이름" 뒤에는 ":"(콜론)이 옵니다. "이름/값" 쌍은 ","(쉼표)로 구분됩니다.
예: {"username": "Eric","age":23,"sex": "man"}
코드 예:
<script type="text/javascript"> function getUser() { var user = { "username": "Eric", "age": 23, "family": {"mother": "Marry", "father": "Alon", "brother": "Tom"} }; alert(user.username); alert(user.age); alert(user.family.brother); } getUser(); </script>
2 Array
Array는 값 시퀀스의 모음입니다. 수집. 배열은 "["(왼쪽 대괄호)로 시작하고 "]"(오른쪽 대괄호)로 끝납니다. 값은 ","(쉼표)로 구분됩니다.
예: ["Eric",23, "man"]
코드 예:
<script type="text/javascript"> function getArray() { var arr = ["Jarry", 23, ["www.xiaophper.com", "wxyh_999@126.com"]]; alert(arr[0]); alert(arr[1]); alert(arr[2][0]); alert(arr[2][1]); } getArray(); </script>
참고: JS에서는 개체와 배열이 다르게 호출됩니다. 개체는 "."으로 호출됩니다. [0]과 [1]. 또한 Json 문자열을 전달할 때 문자열 유형 값은 따옴표로 묶어야 한다는 점에 유의하세요.
PHP에서 배열을 Json으로 변환
강력한 PHP는 내장 함수인 json_encode() 및 json_decode()를 제공합니다. 이해하기 쉽습니다. json_encode()는 PHP 배열을 Json으로 변환하는 것입니다. 반대로 json_decode()는 Json을 PHP 배열로 변환합니다.
예:
$array = array("name" => "Eric","age" => 23); echo json_encode($array);
프로그램은 다음을 인쇄합니다: {"name":"Eric","age":23}
다음 예를 다시 살펴보십시오:
$array = array(0 => "Eric", 1 => 23); echo json_encode($array);
프로그램은 다음을 인쇄합니다: ["Eric ",23]
위의 두 예에서 볼 수 있듯이 PHP 배열의 키가 모두 숫자인 경우 json_encode()는 Json을 배열 형식으로 반환합니다. PHP 배열의 키가 모두 숫자인 경우 문자열. 그런 다음 json_encode()는 Json을 객체 형태로 반환합니다. 방금 말했어요. js의 두 호출은 다릅니다.
실제로 PHP 배열의 키에 문자열 형태의 키가 있는 한 json_encode()는 Json을 객체 형태로 반환합니다. 이것은 잘못된 것입니다. 왜냐하면 PHP 코드에는 오류가 없더라도 이러한 Json이 JS 함수에 전달되면 JS는 이 Json을 객체로 처리하므로 객체가 숫자를 property이름으로 사용할 수 없기 때문입니다. 즉, JS는 이것이 무엇인지 모릅니다: user.0.username (가운데는 숫자 0)
유사 읽기:
위 내용은 PHP 배열은 json 문자열을 변환합니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!