>  기사  >  백엔드 개발  >  PHP용 JSON(JavaScript Object Notation)

PHP용 JSON(JavaScript Object Notation)

伊谢尔伦
伊谢尔伦원래의
2016-11-21 17:52:12958검색

PHP 5.2.0부터는 기본적으로 JSON 확장 기능이 내장되어 PHP에 컴파일됩니다.

JSON 직렬화 인터페이스 JsonSerialized

JsonSerialized를 구현하는 클래스는 json_encode() 시 JSON 표현을 사용자 정의할 수 있습니다.

JsonSerialized::jsonSerialize — JSON으로 직렬화해야 하는 데이터를 지정합니다

예제 #1 배열 반환

<?php
    class ArrayValue implements JsonSerializable {
        public function __construct(array $array) {
            $this->array = $array;
        }
        public function jsonSerialize() {
            return $this->array;
        }
    }
    $array = [1, 2, 3];
    echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

위 루틴은 다음을 출력합니다.

[
    1,
    2,
    3
]

예제 2는 연관 배열을 반환합니다

<?php
    class ArrayValue implements JsonSerializable {
        public function __construct(array $array) {
            $this->array = $array;
        }
        public function jsonSerialize() {
            return $this->array;
        }
    }
    $array = [&#39;foo&#39; => &#39;bar&#39;, &#39;quux&#39; => &#39;baz&#39;];
    echo json_encode(new ArrayValue($array), JSON_PRETTY_PRINT);
?>

위 루틴은 다음을 출력합니다.

{
    "foo": "bar",
    "quux": "baz"
}

예제 3은 정수를 반환합니다

<?php
    class IntegerValue implements JsonSerializable {
        public function __construct($number) {
            $this->number = (integer) $number;
        }
        public function jsonSerialize() {
            return $this->number;
        }
    }
    echo json_encode(new IntegerValue(1), JSON_PRETTY_PRINT);
?>

위 루틴의 출력:

1

예 #4 문자열 반환

<?php
    class StringValue implements JsonSerializable {
        public function __construct($string) {
            $this->string = (string) $string;
        }
        public function jsonSerialize() {
            return $this->string;
        }
    }
    echo json_encode(new StringValue(&#39;Hello!&#39;), JSON_PRETTY_PRINT);
?>

위 루틴의 출력:

"안녕하세요!"

JSON 함수

json_decode — JSON 형식으로 문자열을 인코딩합니다

json_encode — JSON으로 변수를 인코딩합니다

json_last_error_msg — 마지막 json_encode() 또는 json_decode() 호출의 오류 문자열을 반환합니다

json_last_error — 발생한 마지막 오류를 반환합니다


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