"JSON"의 두 판 사이의 차이

 
(사용자 2명의 중간 판 31개는 보이지 않습니다)
1번째 줄: 1번째 줄:
;javascript object notation, JSON
==개요==
;JavaScript Object Notation (JSON)
;제이슨
;제이슨
* 인터넷 등에서 자료를 주고받을 때 그 자료를 표현하는 방법 중 하나
* 속성-값 쌍 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
* 비동기 브라우저/서버 통신(AJAX), API 사용시 송수신 방법으로 널리 사용된다.
* 과거 XML을 대체하는 주요 데이터 포맷으로 자리 잡았다.
* 확장자: <code>.json</code>
* 인터넷 미디어 타입: <code>application/json</code>
[[파일:JSON_vector_logo.svg|120px]]


==예시==
==예시==
XML을 JSON으로 표현해보자.
XML을 JSON으로 표현해보자.
;XML
;XML
<source lang='xml'>
<syntaxhighlight lang='xml'>
<?xml version="1.0" encoding="UTF-8"?>
<?xml version="1.0" encoding="UTF-8"?>
<quiz>
<quiz>
11번째 줄: 20번째 줄:
   <answer>이승만</answer>
   <answer>이승만</answer>
</quiz>
</quiz>
</source>
</syntaxhighlight>
;JSON
;JSON
<source lang='javascript'>
<syntaxhighlight lang='javascript'>
{"quiz": {
{"quiz": {
   "question":"\ub300\ud55c\ubbfc\uad6d\uc758 \ucd08\ub300 \ub300\ud1b5\ub839\uc740?",
   "question":"\ub300\ud55c\ubbfc\uad6d\uc758 \ucd08\ub300 \ub300\ud1b5\ub839\uc740?",
   "answer":"\uc774\uc2b9\ub9cc"
   "answer":"\uc774\uc2b9\ub9cc"
}}
}}
</syntaxhighlight>
:→ JSON은 줄바꿈이나 들여쓰기 없이 1줄이지만, XML과 비교해볼 수 있도록 구조를 맞춰 놓았다.


==PHP 소스코드==
==실습 1: PHP==
<source lang='php'>
<syntaxhighlight lang='php'>
<?php
$arr = array( 'quiz'=> array(
$arr = array( 'quiz'=> array(
   'question' => '대한민국의 초대 대통령은?',
   'question' => '대한민국의 초대 대통령은?',
26번째 줄: 38번째 줄:
));
));
echo json_encode($arr);
echo json_encode($arr);
</source>
</syntaxhighlight>
*예제: http://jmnote.com/php/arr_json.php
<syntaxhighlight lang='console'>
[root@zetawiki ~]# php test.php
{"quiz":{"question":"\ub300\ud55c\ubbfc\uad6d\uc758 \ucd08\ub300 \ub300\ud1b5\ub839\uc740?","answer":"\uc774\uc2b9\ub9cc"}}
</syntaxhighlight>
 
==실습 2: Bash + Python==
{{참고|리눅스 Pretty JSON 출력}}
<syntaxhighlight lang='console'>
[root@zetawiki ~]# curl -s 'https://api.twitter.com/1.1/followers/ids.json'
{"errors":[{"code":215,"message":"Bad Authentication data."}]}
</syntaxhighlight>
<syntaxhighlight lang='console'>
[root@zetawiki ~]# curl -s 'https://api.twitter.com/1.1/followers/ids.json' | python -mjson.tool
{
    "errors": [
        {
            "code": 215,
            "message": "Bad Authentication data."
        }
    ]
}
</syntaxhighlight>


==같이 보기==
==같이 보기==
*[[XML]]
{{z컬럼3|
* [[자바스크립트]]
* [[XML]]
* [[BSON]]
* [[NDJSON]]
* [[JSONP]]
* [[JSON-LD]]
* [[JSON-RPC]]
* [[JSON 스키마]]
* [[함수 json_encode()]]
* [[함수 json_decode()]]
* [[PHP JSON 다루기]]
* [[Python JSON 다루기]]
}}
 
==참고==
* {{위키백과}}
* {{영어위키백과|JSON}}
* http://php.net/manual/en/function.json-encode.php
* RFC 4627


[[분류:데이터]]
[[분류: JSON]]

2024년 7월 9일 (화) 00:21 기준 최신판

1 개요[ | ]

JavaScript Object Notation (JSON)
제이슨
  • 인터넷 등에서 자료를 주고받을 때 그 자료를 표현하는 방법 중 하나
  • 속성-값 쌍 또는 키-값 쌍으로 이루어진 데이터 오브젝트를 전달하기 위해 인간이 읽을 수 있는 텍스트를 사용하는 개방형 표준 포맷
  • 비동기 브라우저/서버 통신(AJAX), API 사용시 송수신 방법으로 널리 사용된다.
  • 과거 XML을 대체하는 주요 데이터 포맷으로 자리 잡았다.
  • 확장자: .json
  • 인터넷 미디어 타입: application/json

JSON vector logo.svg

2 예시[ | ]

XML을 JSON으로 표현해보자.

XML
<?xml version="1.0" encoding="UTF-8"?>
<quiz>
  <question>대한민국의 초대 대통령은?</question>
  <answer>이승만</answer>
</quiz>
JSON
{"quiz": {
  "question":"\ub300\ud55c\ubbfc\uad6d\uc758 \ucd08\ub300 \ub300\ud1b5\ub839\uc740?",
  "answer":"\uc774\uc2b9\ub9cc"
}}
→ JSON은 줄바꿈이나 들여쓰기 없이 1줄이지만, XML과 비교해볼 수 있도록 구조를 맞춰 놓았다.

3 실습 1: PHP[ | ]

<?php
$arr = array( 'quiz'=> array(
  'question' => '대한민국의 초대 대통령은?',
  'answer' => '이승만'
));
echo json_encode($arr);
[root@zetawiki ~]# php test.php
{"quiz":{"question":"\ub300\ud55c\ubbfc\uad6d\uc758 \ucd08\ub300 \ub300\ud1b5\ub839\uc740?","answer":"\uc774\uc2b9\ub9cc"}}

4 실습 2: Bash + Python[ | ]

[root@zetawiki ~]# curl -s 'https://api.twitter.com/1.1/followers/ids.json'
{"errors":[{"code":215,"message":"Bad Authentication data."}]}
[root@zetawiki ~]# curl -s 'https://api.twitter.com/1.1/followers/ids.json' | python -mjson.tool
{
    "errors": [
        {
            "code": 215,
            "message": "Bad Authentication data."
        }
    ]
}

5 같이 보기[ | ]

6 참고[ | ]

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}