Private 멤버를 사용하여 PHP 개체를 JSON으로 인코딩
PHP의 json_encode 함수는 개체를 JSON 형식으로 직렬화하는 편리한 방법을 제공합니다. . 그러나 비공개 클래스 멤버에 저장된 데이터를 처리할 때 문제가 될 수 있습니다.
이러한 제한을 극복하기 위해 사용자 정의 인코딩 기능을 사용할 수 있습니다.
public function encodeJSON() { foreach ($this as $key => $value) { $json->$key = $value; } return json_encode($json); }
이 솔루션은 객체에 작동하지만 중첩된 개체가 없으면 기본 개체 내의 중첩된 개체를 인코딩하지 못합니다.
해결책: JsonSerialized 구현 인터페이스
가장 효과적인 접근 방식은 JsonSerialize를 구현하고 jsonSerialize 메서드를 정의하여 직렬화를 제어하는 것입니다. jsonSerialize 메서드는 직렬화해야 하는 데이터를 반환해야 합니다.
class Item implements \JsonSerializable { private $var; private $var1; private $var2; // ... constructors and other methods ... public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
JsonSerialize를 구현하면 json_encode가 개체를 올바르게 직렬화합니다. , 중첩된 객체를 포함합니다.
위 내용은 PHP에서 JSON 인코딩을 사용하여 개인 멤버가 있는 객체를 처리하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!