> 백엔드 개발 > PHP 문제 > PHP json의 일반적인 방법은 무엇입니까

PHP json의 일반적인 방법은 무엇입니까

青灯夜游
풀어 주다: 2023-03-12 18:10:02
원래의
2189명이 탐색했습니다.

php json 공통 메소드: 1. JSON 형식의 문자열을 디코딩하는 데 사용되는 json_encode() 3. 발생한 마지막 오류를 반환하는 데 사용되는 json_encode().

PHP json의 일반적인 방법은 무엇입니까

이 튜토리얼의 운영 환경 : Windows 7 System, PHP 버전 7.1, Dell G3 컴퓨터

PHP JSON 공통 방법 :

1, json_encode ()

php json_encode () JSON이 변수를 인코딩하는 데 사용됩니다. 이 함수는 성공적으로 실행되면 JSON 데이터를 반환하고, 그렇지 않으면 FALSE를 반환합니다.

Syntax

string json_encode ( $value [, $options = 0 ] )
로그인 후 복사

예:

<?php
   $arr = array(&#39;a&#39; => 1, &#39;b&#39; => 2, &#39;c&#39; => 3, &#39;d&#39; => 4, &#39;e&#39; => 5);
   echo json_encode($arr);
?>
로그인 후 복사

출력 결과:

{"a":1,"b":2,"c":3,"d":4,"e":5}
로그인 후 복사

2, json_encode()

json_decode() 함수는 JSON 형식 문자열을 디코딩하고 이를 PHP 변수로 변환하는 데 사용됩니다.

구문: ​​

mixed json_decode ($json_string [,$assoc = false [, $depth = 512 [, $options = 0 ]]])
로그인 후 복사

매개변수:

  • json_string: 디코딩할 JSON 문자열, UTF-8로 인코딩된 데이터여야 합니다.

  • assoc: 이 매개변수가 TRUE이면 배열이 반환되고, FALSE이면 객체가 반환됩니다.

  • 깊이: 재귀 깊이를 지정하는 정수 유형의 매개변수

  • 옵션: 바이너리 마스크, 현재 JSON_BIGINT_AS_STRING만 지원됩니다.

예:

로그인 후 복사

출력 결과:

object(stdClass)#1 (5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}

array(5) {
    ["a"] => int(1)
    ["b"] => int(2)
    ["c"] => int(3)
    ["d"] => int(4)
    ["e"] => int(5)
}
로그인 후 복사

3, json_last_error()

json_last_error - 마지막으로 발생한 오류를 반환합니다.

구문: ​​

json_last_error()
로그인 후 복사

있는 경우 마지막 오류를 반환합니다. 동안 발생 JSON 인코딩 및 디코딩 실수입니다. 정수가 반환되며 이 값은 다음 상수 중 하나가 됩니다.

meaningJSON_ERROR_NONE < /코드 ><tbody class="tbody"><tr><td>오류 발생 없음<strong><td class="empty"> <code>JSON_ERROR_NONE최대 스택 깊이에 도달함잘못되었거나 비정상적인 JSON
constant
availability
没有错误发生
JSON_ERROR_DEPTH到达了最大堆栈深度
JSON_ERROR_STATE_MISMATCH无效或异常的 JSON
JSON_ERROR_CTRL_CHAR控制字符错误,可能是编码不对
JSON_ERROR_SYNTAX语法错误
JSON_ERROR_UTF8异常的 UTF-8 字符,也许是因为不正确的编码。PHP 5.3.3
JSON_ERROR_RECURSIONOne or more recursive references in the value to be encodedPHP 5.5.0
JSON_ERROR_INF_OR_NANOne or more NANINFJSON_ERROR_DEPTH
JSON_ERROR_UNSUPPORTED_TYPE指定的类型,值无法编码。PHP 5.5.0
JSON_ERROR_INVALID_PROPERTY_NAME指定的属性名无法编码。PHP 7.0.0
JSON_ERROR_UTF16 JSON_ERROR_STATE_MISMATCH

JSON_ERROR_CTRL_CHAR


제어 문자 오류, 아마도 잘못된 인코딩

🎜JSON_ERROR_SYNTAX🎜🎜🎜구문 오류🎜 🎜🎜🎜🎜🎜JSON_ERROR_UTF8</code >🎜🎜🎜예외 UTF-8 문자, 아마도 잘못된 인코딩 때문일 수 있습니다. PHP 5.3.3 OR_INF_OR_NAN</ code>🎜🎜🎜하나 이상의 🎜<code>NAN🎜 아니면 🎜🎜🎜 ​​인코딩할 값의 값🎜🎜PHP 5.5.0🎜🎜🎜🎜🎜JSON_ERROR_UNSUPPORTED_TYPE🎜🎜🎜지정된 형식의 값은 인코딩할 수 없습니다. 🎜🎜PHP 5.5.0🎜🎜🎜🎜🎜JSON_ERROR_INVALID_PROPERTY_NAME🎜🎜🎜지정된 속성 이름을 인코딩할 수 없습니다. 🎜🎜PHP 7.0.0🎜🎜🎜🎜🎜JSON_ERROR_UTF16🎜🎜🎜잘못된 UTF-16 문자. 문자 인코딩이 잘못되었기 때문일 수 있습니다. 🎜🎜PHP 7.0.0🎜🎜🎜🎜🎜예: 🎜
<?php
// 一个有效的 json 字符串
$json[] = &#39;{"Organization": "PHP Documentation Team"}&#39;;

// 一个无效的 json 字符串会导致一个语法错误,在这个例子里我们使用 &#39; 代替了 " 作为引号
$json[] = "{&#39;Organization&#39;: &#39;PHP Documentation Team&#39;}";


foreach ($json as $string) {
    echo &#39;Decoding: &#39; . $string;
    json_decode($string);

    switch (json_last_error()) {
        case JSON_ERROR_NONE:
            echo &#39; - No errors&#39;;
        break;
        case JSON_ERROR_DEPTH:
            echo &#39; - Maximum stack depth exceeded&#39;;
        break;
        case JSON_ERROR_STATE_MISMATCH:
            echo &#39; - Underflow or the modes mismatch&#39;;
        break;
        case JSON_ERROR_CTRL_CHAR:
            echo &#39; - Unexpected control character found&#39;;
        break;
        case JSON_ERROR_SYNTAX:
            echo &#39; - Syntax error, malformed JSON&#39;;
        break;
        case JSON_ERROR_UTF8:
            echo &#39; - Malformed UTF-8 characters, possibly incorrectly encoded&#39;;
        break;
        default:
            echo &#39; - Unknown error&#39;;
        break;
    }

    echo PHP_EOL;
}
?>
로그인 후 복사
🎜출력 결과: 🎜🎜
Decoding: {"Organization": "PHP Documentation Team"} - No errors
Decoding: {&#39;Organization&#39;: &#39;PHP Documentation Team&#39;} - Syntax error, malformed JSON
로그인 후 복사
🎜추천 학습: "🎜PHP 비디오 튜토리얼🎜"🎜

위 내용은 PHP json의 일반적인 방법은 무엇입니까의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿