>  기사  >  백엔드 개발  >  PHP 배열과 Json 간의 변환

PHP 배열과 Json 간의 변환

WBOY
WBOY원래의
2016-08-08 09:27:341278검색

Json을 사용하는 이유는 ajax 객체를 사용할 때 프로그램과 JS 함수 간의 데이터 상호 작용 때문인 경우가 많습니다. JS는 PHP의 배열을 인식하지 못하기 때문에 PHP는 JS의 배열이나 객체를 인식하지 못합니다. Json은 이 문제를 매우 잘 해결합니다.

Json 소개

JSON(JavaScript Object Notation)은 경량 데이터 교환 형식입니다. 이는 JavaScript의 하위 집합을 기반으로 하며 이는 JavaScript가 Json을 직접 읽을 수 있다는 것을 의미하며 이는 매우 편리합니다.

Json의 구체적인 형식은 다음과 같습니다.
1. Object

객체는 "이름/값" 쌍의 순서가 지정되지 않은 모음입니다. 객체는 "{"(왼쪽 대괄호)로 시작하고 "}"(오른쪽 대괄호)로 끝납니다. 각 "이름" 뒤에는 ":"(콜론)이 옵니다. "이름/값" 쌍은 ","(쉼표)로 구분됩니다.

예: {"username": "Eric","age":23,"sex": "man"}

코드 예:

? 코드 보기 JAVASCRIPT

<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. 배열

배열은 순서가 지정된 값의 모음입니다. 배열은 "["(왼쪽 대괄호)로 시작하고 "]"(오른쪽 대괄호)로 끝납니다. 값은 ","(쉼표)로 구분됩니다.

예: ["Eric",23, "man"]

코드 예:

?코드 보기 PHP

<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 배열로 변환합니다.

예:

?PHP 코드 보기

$array = array("name" => "Eric","age" => 23);   echo json_encode($array);

프로그램은 다음을 인쇄합니다: {"name":"Eric"," age" :23}

다음 예를 다시 살펴보세요.

?코드 보기 PHP

$array = array(0 => "Eric", 1 => 23);   echo json_encode($array);

프로그램은 다음을 인쇄합니다. "Eric", 23]
위의 두 예에서 볼 수 있듯이 PHP 배열의 키가 모두 숫자인 경우 json_encode()는 PHP 배열의 키가 모두 숫자인 경우 Json을 배열로 반환합니다. 모두 문자열입니다. 그런 다음 json_encode()는 Json을 객체 형태로 반환합니다. 방금 말했어요. js의 두 호출은 다릅니다.
사실 PHP 배열의 키에 문자열 형태의 키가 있는 한 json_encode()는 Json을 객체 형태로 반환합니다. 이것은 잘못된 것입니다. 왜냐하면 PHP 코드에서는 오류가 발생하지 않더라도 그러한 Json을 JS 함수에 전달하면 JS는 Json을 객체로 취급하므로 객체가 숫자를 속성 이름으로 사용할 수 없기 때문입니다. 즉, JS는 이것이 무엇인지 모릅니다: user.0.username(가운데는 숫자 0)

재인쇄: http://www.cnblogs.com/xmphoenix/archive/2011/ 05/26/2057963.html

위 내용은 관련 측면을 포함하여 PHP 배열과 Json 간의 변환을 소개합니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.