PHP JSON

json이란 무엇인가요?

JSON(JavaScript Object Notation)은 주로 데이터 전송에 사용되는 경량 데이터 교환 형식입니다.
JSON은 JavaScript 개체에 표시된 데이터 세트를 문자열로 변환할 수 있으며, 문자열은 함수 간에 쉽게 전달되거나 웹 클라이언트에서 비동기 애플리케이션 프로그램의 서버로 전달될 수 있습니다. 이 문자열은 조금 이상해 보이지만 JavaScript는 이를 쉽게 해석할 수 있으며 JSON은 "이름/값 쌍"보다 더 복잡한 구조를 나타낼 수 있습니다. 예를 들어, 단순한 키와 값 목록이 아닌 배열과 복잡한 객체를 표현할 수 있습니다.

이 장은 이해를 돕기 위한 것이므로 집중해서 볼 필요는 없습니다.

환경설정

php5.2.0 이상에서는 JSON 확장 기능이 내장되어 있습니다.


JSON 함수


QQ截图20161009100513.png

json_encode

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

구문

string json_encode ( $value [, $options = 0 ] )

매개변수

·            값: 인코딩할 값입니다. 이 함수는 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

인스턴스

다음 예에서는 PHP 배열을 JSON 형식 데이터로 변환하는 방법을 보여줍니다.

<?php
   $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
   echo json_encode($arr);
?>

위 코드의 실행 결과는 다음과 같습니다.

{"a":1,"b":2 ,"c ":3,"d":4,"e":5}

다음 예에서는 PHP 개체를 JSON 형식 데이터로 변환하는 방법을 보여줍니다.

<?php
   class Emp {
       public $name = "";
       public $hobbies  = "";
       public $birthdate = "";
   }
   $e = new Emp();
   $e->name = "sachin";
   $e->hobbies  = "sports";
   $e->birthdate = date('m/d/Y h:i:s a', "8/5/1974 12:20:03 p");
   $e->birthdate = date('m/d/Y h:i:s a', strtotime("8/5/1974 12:20:03"));
 
   echo json_encode($e);
?>

실행 결과 위 코드는 다음과 같습니다.

{"name":"sachin","hobbies":"sports","birthdate":"08/05/1974 12:20:03 pm"}


json_decode

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

구문

혼합 json_decode($json [,$assoc = false [, $length = 512 [, $options = 0 ]]])

<数>

매개변수

· JSON_STRING: 디코딩할 JSON 문자열은 UTF-8 코딩 데이터여야 합니다.

· assoc: 이 매개변수가 true이면 다음으로 반환됩니다. return. 배열, FALSE인 경우 객체를 반환합니다.

· 깊이: 재귀 깊이를 지정하는 정수형 매개 변수

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

다음 예는 JSON 데이터를 디코딩하는 방법을 보여줍니다.

<?php
   $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}';
 
   var_dump(json_decode($json));
   var_dump(json_decode($json, true));
?>

위 코드의 실행 결과는 다음과 같습니다.

object(stdClass)#1 (5) {

["a"] =>

["b"] => int(2)

["c"] => int(3)

["d"] => )

["e"] => int(5)

}

배열(5) {

[ "a" ] => int(1)

["b"] => int(2)

["c"] =>

["d"] => int(4)

["e"] => int(5)

}

PHP의 Json 형식 규칙

- 병렬 데이터는 쉼표(", ")로 구분됩니다.

- 매핑이 완료됩니다. 콜론(":")은

을 나타냅니다. - 병렬 데이터의 컬렉션(배열)은 대괄호("[]")로 표시됩니다.
- 매핑된 컬렉션(객체)은 중괄호("{})로 표시됩니다. ")

다음 문장:

"베이징의 면적은 16,800평방 킬로미터이고, 상주 인구는 1,600만 명입니다. 상하이의 면적은 6,400평방 킬로미터입니다. 영구 인구는 1,800만명입니다."

다음과 같이 json 형식으로 작성됩니다.

[

 {"City":"Beijing","Area":16800," Population":1600},

 {"City" ":"Shanghai","Area":6400,"Population":1800}

]

작동하는 기능 PHP의 json

암호화 json_encode

json_decode 해독

1차원 배열을 json 데이터 형식으로 변환

<?php
$arr_1 = array();
$arr_1['username'] = 'lisi';
$arr_1['age'] = 20;
echo json_encode($arr_1);//{"username":"lisi","age":20}
  ?>

다차원 배열을 json 데이터 형식으로 변환

<?php
$arr_2 = array();
// 三维数组
$arr_2['member']['lisi']['job'] = "worker";
$arr_2['member']['lisi']['age'] = 30;
$arr_2['member']['wangwu']['job'] = "student";
$arr_2['member']['wangwu']['age'] = 10;
 
echo json_encode($arr_2);
//{"member":{"lisi":{"job":"worker","age":30},"wangwu":{"job":"student","age":10}}}
  ?>

객체를 json 데이터 형식으로 변환

객체가 다음과 같은 경우 json 데이터로 변환, 공용 변수만 변환, 전용 변수는 변환 안 함

<?php
class Person{
    public $name = "public name";
    protected $ptName = "protected name";
    private $pName = "private name";
 
    public function sayName(){
        return $this->name;
    }
}
$person1 = new Person();
echo json_encode($person1);//{"name":"public name"}
  ?>

json 데이터 형식을 객체 유형으로 변환

<?php
$jsonStr = '{"key1":"value1","key2":"value2"}';
print_r(json_decode($jsonStr,false));//stdClass Object ( [key1] => value1 [key2] => value2
?>

json 데이터 형식을 배열 유형으로 변환

<?php
$jsonStr = '{"key1":"value1","key2":"value2"}';
print_r(json_decode($jsonStr,true));//Array ( [key1] => value1 [key2] => value2 )
?>
json_decode($jsonStr ,true); 두 번째 매개변수가 true이면 결과가 배열 유형으로 변환됩니다. 기본적으로

객체로 변환됩니다.

지속적인 학습
||
<?php $json = '{"a":1,"b":2,"c":3,"d":4,"e":5}'; var_dump(json_decode($json)); var_dump(json_decode($json, true)); ?>
  • 코스 추천
  • 코스웨어 다운로드
현재 코스웨어를 다운로드할 수 없습니다. 현재 직원들이 정리하고 있습니다. 앞으로도 본 강좌에 많은 관심 부탁드립니다~