라이브러리
[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` 메서드를 재정의하여 사용자 정의 데이터를 반환하는 방법을 보여줍니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.