실제 질문에 답하려면 :
PHP가 JSON 객체를 클래스로 바꾸는 이유는 무엇입니까?
인코딩 된 JSON의 출력을 자세히 살펴보면 OP가 제공하는 예제를 확장했습니다.
$array = array(
'stuff' => 'things',
'things' => array(
'controller', 'playing card', 'newspaper', 'sand paper', 'monitor', 'tree'
)
);
$arrayEncoded = json_encode($array);
echo $arrayEncoded;
//prints - {"stuff":"things","things":["controller","playing card","newspaper","sand paper","monitor","tree"]}
JSON 형식은 JavaScript ( ECMAScript Programming Language Standard )와 동일한 표준에서 파생되었으며 형식을 살펴보면 JavaScript처럼 보입니다. 이것은 값이 "things"인 "stuff"속성을 갖는 JSON 객체 ( {}
= object )이며 값이 문자열 []
배열 ( = array ) 인 "things"속성을가 집니다.
JSON (JavaScript)은 연관 배열 만 인덱싱 된 배열을 알지 못합니다. 따라서 JSON이 PHP 연관 배열을 인코딩 할 때이 배열을 "객체"로 포함하는 JSON 문자열이 생성됩니다.
이제 .NET을 사용하여 JSON을 다시 디코딩합니다 json_decode($arrayEncoded)
. 디코드 함수는이 JSON 문자열의 출처 (PHP 배열)를 알지 못하므로 PHP에있는 알 수없는 개체로 디코딩 stdClass
합니다. 보시다시피 문자열의 "things"배열은 색인 된 PHP 배열로 디코딩됩니다.
참조 :
'사물'에 대한 https://www.randomlists.com/things 덕분에