>백엔드 개발 >PHP 문제 >PHP에서 빈 배열을 json 객체로 변환하는 방법

PHP에서 빈 배열을 json 객체로 변환하는 방법

藏色散人
藏色散人원래의
2021-04-02 09:45:223061검색

PHP에서 빈 배열을 json 개체로 변환하는 방법: 1. "JSON_FORCE_OBJECT"를 사용하여 json 개체로 변환합니다. 2. 데이터 유형 변환을 사용하여 빈 배열을 json 개체로 변환합니다. 3. ArrayObject를 사용하여 빈 배열을 json 개체로 변환합니다. .

PHP에서 빈 배열을 json 객체로 변환하는 방법

이 문서의 운영 환경: Windows 7 시스템, PHP 버전 7.1, DELL G3 컴퓨터

PHP json_encode는 빈 배열을 객체로 변환합니다.

문제 설명:

php는 클라이언트에 인터페이스를 제공합니다. PC 등 Android, iOS 등에서 json 형식의 데이터가 반환되는 경우, 반환되는 데이터가 배열이고 키가 문자열인 경우 jsonization 후 jsonObject가 반환됩니다. 단, 빈 배열인 경우에는 jsonArray가 반환될 수 있으며 데이터 구조가 일관되지 않습니다. json 구문 분석이 실패하게 됩니다.

예:

$arr  = [
     'id'  => 123.,
     'name'  =>  'andrew' ,
];
 
$jsonRet  = json_encode( $arr );
 
print_r( $jsonRet );

출력:

{
  "id": 123,
  "name": "andrew"
}

하지만 그렇다면:

$arr = [];
$jsonRet = json_encode($arr);
print_r($jsonRet);

출력:

[
  
]

배열이 비어 있는데 어떻게 JsonObject일 수 있습니까?

방법 1:

JSON_FORCE_OBJECT

$arr = [];
$jsonRet = json_encode($arr, JSON_FORCE_OBJECT);
print_r($jsonRet);
사용 방법 2

데이터 유형 변환 사용

$arr = [
    'jsonArray' => [
        '21', '12', '13'
    ],
    'jsonObject' => []
];
$jsonRet = json_encode($arr,JSON_FORCE_OBJECT);
print_r($jsonRet);

방법 3(권장)

ArrayObject 사용

{
  "jsonArray": {
    "0": "21",
    "1": "12",
    "2": "13"
  },
  "jsonObject": {
    
  }
}

출력:

$bar = array();  
$foo = (object)$bar;  
echo json_encode($foo);

【추천 학습: PHP 비디오 튜토리얼

위 내용은 PHP에서 빈 배열을 json 객체로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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