라이브러리

[PHP] DsVector::jsonSerialize - JSON으로 변환할 수 있는 표현을 반환합니다.




PHP의 DsVector::jsonSerialize


PHP 7.4 버전부터 `DsVector` 클래스가 도입되었습니다. `DsVector`는 동적 배열을 위한 클래스로, `jsonSerialize` 메서드를 통해 JSON.stringify()와 호환됩니다.

# jsonSerialize 메서드


`jsonSerialize` 메서드는 JSON.stringify() 함수와 호환되도록 데이터를 serialize합니다. 이 메서드는 `DsVector` 인스턴스에서 호출할 수 있으며, JSON.stringify() 함수와 동일한 결과를 반환합니다.

# 예제


#hostingforum.kr
php

// DsVector 인스턴스 생성

$vector = new DsVector([1, 2, 3, 4, 5]);



// jsonSerialize 메서드 호출

$jsonData = json_encode($vector, JSON_PRETTY_PRINT);



// 결과 출력

echo $jsonData;



# 결과


#hostingforum.kr
json

[

    1,

    2,

    3,

    4,

    5

]



# 예제 2 - 객체 포함


#hostingforum.kr
php

// DsVector 인스턴스 생성

$vector = new DsVector([

    (object) ['name' => 'John', 'age' => 30],

    (object) ['name' => 'Jane', 'age' => 25],

    (object) ['name' => 'Bob', 'age' => 40]

]);



// jsonSerialize 메서드 호출

$jsonData = json_encode($vector, JSON_PRETTY_PRINT);



// 결과 출력

echo $jsonData;



# 결과


#hostingforum.kr
json

[

    {"name":"John","age":30},

    {"name":"Jane","age":25},

    {"name":"Bob","age":40}

]



# 예제 3 - 객체 포함 및 속성 이름 변경


#hostingforum.kr
php

// DsVector 인스턴스 생성

$vector = new DsVector([

    (object) ['name' => 'John', 'age' => 30],

    (object) ['name' => 'Jane', 'age' => 25],

    (object) ['name' => 'Bob', 'age' => 40]

]);



// jsonSerialize 메서드 호출

$jsonData = json_encode($vector, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);



// 결과 출력

echo $jsonData;



# 결과


#hostingforum.kr
json

[

    {"name":"uc548ub155","age":30},

    {"name":"uc0acuc774uc988","age":25},

    {"name":"ucd1duc138uc694","age":40}

]



# 예제 4 - jsonSerialize 메서드 재정의


#hostingforum.kr
php

class MyVector extends DsVector

{

    public function jsonSerialize()

    {

        $data = parent::jsonSerialize();

        return ['message' => 'Hello, World!', 'data' => $data];

    }

}



// MyVector 인스턴스 생성

$vector = new MyVector([1, 2, 3, 4, 5]);



// jsonSerialize 메서드 호출

$jsonData = json_encode($vector, JSON_PRETTY_PRINT);



// 결과 출력

echo $jsonData;



# 결과


#hostingforum.kr
json

{

    "message": "Hello, World!",

    "data": [

        1,

        2,

        3,

        4,

        5

    ]

}



이 예제들은 `DsVector` 클래스의 `jsonSerialize` 메서드를 사용하여 JSON.stringify() 함수와 호환되는 데이터를 serialize하는 방법을 보여줍니다. 또한 `jsonSerialize` 메서드를 재정의하여 사용자 정의 데이터를 반환하는 방법을 보여줍니다.
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 594 페이지

검색

게시물 검색