>  기사  >  백엔드 개발  >  객체를 JSON 문자열로 변환

객체를 JSON 문자열로 변환

不言
不言원래의
2018-07-07 11:44:486816검색

이 글은 주로 객체를 JSON 문자열로 변환하는 방법을 소개합니다. 이제 이를 여러분과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다.

1 class Student {
2     public $name;
3     public $age;
4     function __construct($name, $age) {
5         $this->name = $name;
6         $this->age = $age;
7     }
8 }

new 이번에는 객체와 직접 echo:

1 $person1 = new Student('jack', 20) 2 echo $person1; 결과가 인쇄되지 않습니다. 예상 개체를 종료하는 대신 치명적인 오류가 보고되었습니다:

. 이는 Student 클래스에 의해 인스턴스화된 개체를 문자열로 변환할 수 없음을 의미합니다. 여기서는 echo 뒤에 문자열이 와야 한다는 메시지가 표시됩니다. ,

그렇지 않으면 자동으로 문자열로 변환됩니다. 그러면 객체를 문자열로 변환하는 방법은 무엇입니까?

먼저 마법 메서드인 __tostring()을 소개합니다. 이 메서드는 클래스가 문자열로 처리될 때 어떻게 응답해야 하는지 결정하는 데 사용됩니다. 예를 들어

echo $obj;

무엇을 표시해야 할까요? 이 메소드는 문자열을 반환해야 합니다. 그렇지 않으면

수준의 치명적인 오류가 발생합니다.

E_RECOVERABLE_ERRORStudent 클래스에 이 마법 메소드를 추가하세요.

 1 class Student { 
 2      public $name; 
 3      public $age; 
 4      function __construct($name, $age) { 
 5           $this->name = $name; 
 6           $this->age = $age; 
 7      } 
 8      function __tostring() { 
 9           return json_encode($this, JSON_FORCE_OBJECT);
 10      }
 11 }

json_encode(value, options) 메소드는 객체를 JSON 문자열로 변환할 수 있습니다. 이 메소드는 두 개의 매개변수,

첫 번째 매개변수: value

값을 허용합니다. 리소스 유형을 제외하고 모든 데이터 유형이 가능합니다.

이 함수는 UTF-8로 인코딩된 데이터만 허용합니다.

두 번째 매개변수: 옵션
다음 상수로 구성된 바이너리 마스크: JSON_HEX_QUOT, JSON_HEX_TAG, JSON_HEX_AMP, JSON_HEX_APOS, JSON_NUMERIC_CHECK, JSON_PRETTY_PRINT, JSON_UNESCAPED_SLASHES, JSON_FORCE_OBJECT, JSON_UNESCAPED_UNICODE.

반환 값: 인코딩이 성공하면 JSON 형식으로 표현된 문자열을 반환하고, 실패하면 FALSE를 반환합니다.

참고: json_encode 메소드와 비교하여 json_decode 메소드가 있습니다. 이 메소드는 JSON 형식 문자열을 PHP 변수로 변환할 수 있습니다. 이 메소드는 두 개의 매개변수를 허용합니다.

  첫 번째 매개변수: json 문자열

 두 번째 매개변수 : true/false. true일 경우 문자열을 배열로 변환한다는 의미, false일 경우 객체로 변환한다는 의미입니다. 기본값은 false

  반환값: 객체 또는 배열( 두 번째 매개변수는 true일 때)

이 때 브라우저를 열면 변환이 성공한 것을 확인할 수 있습니다.

위는 이 글의 전체 내용입니다. 학습에 관한 더 많은 내용을 보려면 PHP 중국어 웹사이트를 주목하세요!

관련 권장사항:

PHP Redis 서비스 컴파일 및 설치 방법

PHP 소스 코드로 데이터베이스 및 테이블 구성 파일-오류 로그 작성 방법


위 내용은 객체를 JSON 문자열로 변환의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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