
`jsonSerialize()` 메서드의 결과에서 `BSONBinary` 객체를 json 형식으로 변환하는 방법은 다음과 같습니다.
`BSONBinary` 객체는 내부적으로 `base64` 형식의 문자열을 저장하고 있습니다. 따라서, `jsonSerialize()` 메서드를 사용하여 `BSONBinary` 객체를 json 형식으로 변환하기 위해서는 `base64` 형식의 문자열을 직접 변환해야 합니다.
다음은 예제 코드입니다.
#hostingforum.kr
php
use MongoDBBSONBinary;
use MongoDBBSONUTCDateTime;
$binary = new Binary('data', Binary::TYPE_BINARY);
$date = new UTCDateTime();
$data = [
'id' => 1,
'name' => 'John',
'data' => $binary,
'created_at' => $date,
];
$document = new MongoDBBSONUTCDateTime($data);
// jsonSerialize() 메서드를 사용하여 데이터를 json 형식으로 변환
$jsonData = json_encode($data, JSON_PRETTY_PRINT);
// base64 형식의 문자열을 직접 변환
$binaryData = base64_encode($binary->getData());
// json 형식으로 변환된 데이터에 base64 형식의 문자열을 추가
$jsonData = preg_replace('/"data": {$binary": {.*?}}/', '"data": {"$binary": {"base64": "' . $binaryData . '", "subtype": "00"}}', $jsonData);
print($jsonData);
이 예제 코드에서는 `jsonSerialize()` 메서드를 사용하여 데이터를 json 형식으로 변환한 후, `base64` 형식의 문자열을 직접 변환하여 json 형식으로 변환된 데이터에 추가합니다.
2025-06-27 03:13