PHP에서 JSON을 디코딩하면 객체가 생성되는 경우가 많습니다. 이름이 잘못된 속성이 있습니다. 이러한 불일치로 인해 표준 개체 구문을 사용하여 이러한 속성에 액세스하기가 어렵습니다.
유효한 변수 이름이 있는 속성은 점 표기법을 사용하여 액세스할 수 있습니다. :
$data = '{ "name": "John Doe" }'; $obj = json_decode($data); echo $obj->name; // Output: John Doe
정수 또는 기타 유효하지 않은 이름으로 속성에 액세스하는 것은 그리 간단하지 않습니다. PHP에는 오류를 일으킬 수 있는 몇 가지 특이한 점이 있습니다.
$data = '{ "42": "The Answer" }'; $obj = json_decode($data); echo $obj->{'42'}; // Output: The Answer
$data = '{ "123": "Three Digits" }'; $obj = json_decode($data); echo $obj->{'123'}; // Error: syntax error
$obj = new stdClass; $obj->{'123'} = 'Three Digits'; echo $obj->{'123'}; // Output: Three Digits
잘못된 이름으로 속성에 액세스하려면 다음을 고려하세요. 옵션:
$obj = json_decode($data); $arr = (array) $obj->highlighting; $value = $arr['448364']['Data']['0'];
function recursive_cast_to_array($obj) { $arr = (array) $obj; foreach ($arr as &$value) { if (is_object($value)) { $value = recursive_cast_to_array($value); } } return $arr; } $arr = recursive_cast_to_array($obj); $value = $arr['highlighting']['448364']['Data']['0'];
$arr = json_decode(json_encode($obj), true); $value = $arr['highlighting']['448364']['Data']['0'];
JSON 함수에는 UTF-8이 필요합니다. 모든 문자열에 대한 인코딩
위 내용은 PHP에서 유효하지 않거나 정수 이름으로 개체 속성에 액세스하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!