본문 바로가기
JSON

JSON 사용

by FraisGout 2020. 7. 4.

자바스크립트와 JSON

JSON은 자바스크립트의 객체 표기법을 제한하여 만든 텍스트 기반의 데이터 교환 표준입니다.

 

따라서 JSON 데이터는 자바스크립트가 자주 사용되는 웹 환경에서 사용하는 것이 유리합니다.

 

 

 

자바스크립트에서 JSON 데이터를 분석하고 사용하는 것은 매우 간단합니다.

 

자바스크립트는 JSON 데이터를 처리하기 위한 다음과 같은 메소드를 제공하고 있습니다.

 

 

 

1. JSON.stringify()

 

2. JSON.parse()

 

3. toJSON()

 

JSON.stringify() 메소드

JSON.stringify() 메소드는 인수로 전달받은 자바스크립트 객체를 문자열로 변환하여 반환합니다.

 

문법

JSON.stringify(value)

 

 

 

value에는 변환할 자바스크립트 객체를 전달합니다.

 

이 메소드는 UTF-16으로 인코딩된 JSON 형식의 문자열을 반환합니다.

 

예제

var dog = {name: "식빵", family: "웰시코기", age: 1, weight: 2.14}; // 자바스크립트 객체

 

 

 

var data = JSON.stringify(dog); // 자바스크립트 객체를 문자열로 변환함.

 

document.getElementById("json").innerHTML = data;

 

JSON.parse() 메소드

JSON.parse() 메소드는 JSON.stringify() 메소드와는 반대로 인수로 전달받은 문자열을 자바스크립트 객체로 변환하여 반환합니다.

 

문법

JSON.parse(text)

 

 

 

text에는 변환할 문자열을 전달합니다.

 

이때 해당 문자열은 반드시 유효한 JSON 형식의 문자열이어야 합니다.

 

만약 JSON 형식에 맞지 않는 문자열을 전달하면, 자바스크립트는 오류를 발생시킬 것입니다.

 

예제

var data = '{"name": "식빵", "family": "웰시코기", "age": 1, "weight": 2.14}'; // JSON 형식의 문자열

 

 

 

var dog = JSON.parse(data); // JSON 형식의 문자열을 자바스크립트 객체로 변환함.

 

document.getElementById("json").innerHTML = dog + "<br>";

 

document.getElementById("json").innerHTML += dog.name + ", " + dog.family;

 

JSON.parse() 메소드는 오직 JSON 형식의 문자열만을 변환할 수 있습니다.

toJSON() 메소드

자바스크립트의 toJSON() 메소드는 자바스크립트의 Date 객체의 데이터를 JSON 형식의 문자열로 변환하여 반환합니다.

 

따라서 이 메소드는 Date.prototype 객체에서만 사용할 수 있습니다.

 

 

 

toJSON() 메소드는 접미사 Z로 식별되는 UTC 표준 시간대의 날짜를 ISO 8601 형식의 문자열로 반환합니다.

 

따라서 이 문자열은 언제나 24개나 27개의 문자로 이루어지며, 다음과 같은 형식을 따릅니다.

 

문법

YYYY-MM-DDTHH:mm:ss.sssZ

 

또는

 

±YYYYYY-MM-DDTHH:mm:ss.sssZ

 

 

 

예제

var date = new Date(); // 자바스크립트 Date 객체

 

var str = date.toJSON(); // Date 객체를 JSON 형식의 문자열로 변환함.

 

 

 

document.getElementById("json").innerHTML = date + "<br>";

 

document.getElementById("json").innerHTML += str;

 

 

PHPJSON

PHP는 서버 측에서 실행되는 스크립트 언어입니다.

 

PHP는 개발자가 동적으로 웹 페이지를 쉽고 빠르게 만들 수 있도록 도와줍니다.

 

이때 서버로부터 읽어 들이는 데이터로 JSON 데이터가 많이 사용됩니다.

 

 

 

따라서 PHP를 사용하여 JSON 데이터를 다뤄야 할 필요성이 생깁니다.

 

PHP는 이러한 JSON 데이터를 다루기 위해 다음과 같은 메소드를 제공하고 있습니다.

 

 

 

1. json_encode()

 

2. json_decode()

 

json_encode() 함수

PHPjson_encode() 함수는 전달받은 값을 JSON 형식의 문자열로 변환하여 반환합니다.

 

문법

string json_encode(mixed $value)

 

 

 

$value에는 변환할 값을 전달하며, 이 값의 타입은 resource 타입을 제외한 PHP의 모든 타입이 올 수 있습니다.

 

이 함수는 UTF-8로 인코딩된 값을 인수로 전달해야만 정상적으로 동작합니다.

 

 

 

다음 예제는 json_encode() 함수를 이용하여 PHP 배열을 문자열로 변환하는 예제입니다.

 

예제

 

 

$value = array('apple'=>'Fruits', '1'=>1, ''=>true); // PHP 배열

 

echo json_encode($value);

 

위의 예제처럼 한글은 UTF-8로 인코딩되어, 유니코드 코드 포인트(unicode code point) 값으로 저장됩니다.

 

json_encode() 함수는 PHP 5.2.0부터 제공됩니다.

 

json_decode() 함수

PHPjson_decode() 함수는 전달받은 JSON 형식의 문자열을 PHP 변수로 변환합니다.

 

문법

mixed json_decode(string $json)

 

 

 

$json에는 변환할 문자열을 전달합니다.

 

이때 해당 문자열은 반드시 유효한 JSON 형식의 문자열이어야 합니다.

 

만약 JSON 형식에 맞지 않는 문자열을 전달하면, json_decode() 함수는 null 값을 반환할 것입니다.

 

 

 

또한, 두 번째 인수로 true를 전달하면, 결과를 PHP 객체가 아닌 연관 배열로 반환해 줍니다.

 

 

 

다음 예제는 json_decode() 함수를 이용하여 JSON 형식의 문자열을 PHP 배열로 변환하는 예제입니다.

 

예제

 

 

$json = '{"apple":"Fruits", "1":1, "":true}';

 

var_dump(json_decode($json, true));

 

json_encode() 함수는 PHP 5.2.0부터 제공됩니다.

'JSON' 카테고리의 다른 글

JSON schema  (0) 2020.07.04
JSON datatype  (0) 2020.07.04
JSON 기본  (0) 2020.07.04
JSON 기초  (0) 2020.07.04

댓글