SlideShare uma empresa Scribd logo
1 de 10
Baixar para ler offline
Team-Mobs 박 기 덕
CHAPTER 14. JSON
JSON이란?
• JavaScript Object Notation, RFC 4627
• JavaScript 구문 형식을 따르며, 언어나 플랫폼에 독립적
• 미디어 타입 : „application/json‟
• 표현 가능한 자료형
• object, array, string, number, boolean, null
JSON 자료형
• Object
• 이름과 값의 집합, 이름은 항상 문자열, 값은 Json의 자료형 가능
• object는 {}로 감싸고, 멤버는 „,‟로 구분하며 이름과 값는 „:‟으로 구분
{
“name” : {
“first” : “John”,
“last” : “Doe”
},
“blog” : “http://blog.example.com”,
“age” : 34,
“interests” : [“Web”, “XML”, “REST”]
}
JSON 자료형
• Array
• 순서를 가진 값의 집합, []감싸며 값은 „,‟로 구분
[ “foo”, “bar”, “baz” ] - 문자열의 배열
[ { “foo” : “bar” }, { “key” : “value” } ] - 오브젝트의 배열
[ [ 10, 10 ], [ 40, 50 ] ] - 배열의 배열
[ ] - 빈 배열
[ { “foo” : “bar” }, “baz”, 100, true, null ] - 복잡한 배열
JSON 자료형
• String
• 문자열은 반드시 이중인용부호(“)로 감싸 준다.
• 모든 문자를 uxxxx (u에 이어 4자리의 16진수로 표현한 unicode)로 표현 가능
“가나다” - 단순한 문자열
“uAC00uB098uB2E4” - 에스케이프 표기한 “가나다” 문자
“foobarn” - 백 슬래시()와 줄바꿈(n)
• Boolean
• „true‟, „false‟ 모두 소문자 기술
JSON 자료형
• Number
• 정수와 부동소수점 모두 포함, 10진 표기로 한정
10 - 정수 값
-100 - 음수 값
30.1 - 소수점이 붙은 수치
1.0e-10 - 지수
• Null
• 반드시 „null‟이라고 소문자 기술
일시
• Json에서 기본적으로 제공하는 자료형에 일시는 없음
• 개발자 스스로 규칙을 정해 사용
• 가장 단순한 방법으로 UNIX 시간을 수치로 표현 (1234567890 – 2009년 2월 14일 8시 31분 30초)
• UNIX는 타임 존을 다루지 못함, 타임 존이 필요할 시 JavaScript의 Date 클래스 toString() 메소드 이용
(“Mon Nov 01 2010 05:43:35 GMT+0900” – Fierfox 3.6)
(“Mon Nov 01 05:43:35 UTC+0900 2010” – IE 8)
• JavaScript는 브라우져별로 출력이 달라지기 때문에 표준적인 ISO 8601 사용 권장
(“2010-11-01T05:43:35+09:00”)
링크
• 단순히 URI를 문자열로 표현
{
“href” : “http://example.com/foo/bar”
}
• URI는 절대 URI로 표현 권장
• 멤버의 이름을 링크를 나타내는 값으로 지정하여 표현 권장
크로스 도메인 통신
• 불특정 다수의 서버에 엑세스 하는 것을 „크로스 도메인 통신‟ 이라 함
• Ajax에서 사용하는 XMLHttpRequest라는 JavaScript 모듈은 보안상 제한으로 하나의 서버와 통신 가능
• <script>요소를 이용해 크로스 도메인 통신 가능
• JSONP(Json with Paddinf)은 브라우져의 <script>요소를 이용해 크로스 도메인 통신 구현
• 클라이언트가 지정한 콜백 함수명을 랩핑하여 크로스 도메인 통신 구현
크로스 도메인 통신
• test.html에 2개의 <script>요소 존재, 첫번째에서는 콜백 함수 foo 정의, 두번째에서 특정 도메인 호출
<html xmlns=“http://www.w3.org/1999/xhtml">
<head>
<title> 크로스 도메인 통신의 예 </title>
</head>
<body>
<script type = “text/javascript”>
function foo(zip) {
alert(zip[“zipcode”]);
} </script>
<script src=“http://zip.ricollab.jp/1120002.json?callback=foo”></script>
</body>
</html>

Mais conteúdo relacionado

Destaque

JavaSript Template Engine
JavaSript Template EngineJavaSript Template Engine
JavaSript Template EngineOhgyun Ahn
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기지수 윤
 
6주 javaScript 시작하며
6주  javaScript 시작하며6주  javaScript 시작하며
6주 javaScript 시작하며지수 윤
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development지수 윤
 
처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3성일 한
 
하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기정석 양
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4성일 한
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기Hyeonjin Cho
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다정석 양
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1성일 한
 
[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery정석 양
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기JinKwon Lee
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]Yurim Jin
 

Destaque (18)

JavaSript Template Engine
JavaSript Template EngineJavaSript Template Engine
JavaSript Template Engine
 
jQuery 구조와 기능
jQuery 구조와 기능jQuery 구조와 기능
jQuery 구조와 기능
 
WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기WEB Front-End 개발과정 살펴보기
WEB Front-End 개발과정 살펴보기
 
6주 javaScript 시작하며
6주  javaScript 시작하며6주  javaScript 시작하며
6주 javaScript 시작하며
 
Bs camp
Bs campBs camp
Bs camp
 
Clean Front-End Development
Clean Front-End DevelopmentClean Front-End Development
Clean Front-End Development
 
처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3처음배우는 자바스크립트, 제이쿼리 #3
처음배우는 자바스크립트, 제이쿼리 #3
 
2. template
2. template2. template
2. template
 
하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기하코사세미나_캔버스 파이그래프 만들기
하코사세미나_캔버스 파이그래프 만들기
 
처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4처음배우는 자바스크립트, 제이쿼리 #4
처음배우는 자바스크립트, 제이쿼리 #4
 
최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기최전방 생존법 - 프론트엔드 개발자로 살아가기
최전방 생존법 - 프론트엔드 개발자로 살아가기
 
퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다퍼블리셔, 프론트엔드개발을 시작하다
퍼블리셔, 프론트엔드개발을 시작하다
 
처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1처음배우는 자바스크립트, 제이쿼리 #1
처음배우는 자바스크립트, 제이쿼리 #1
 
[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery[하코사세미나] 한 시간 만에 배우는 Jquery
[하코사세미나] 한 시간 만에 배우는 Jquery
 
웹 Front-End 실무 이야기
웹 Front-End 실무 이야기웹 Front-End 실무 이야기
웹 Front-End 실무 이야기
 
AUG 리더에 지원해 보세요!!!
AUG 리더에 지원해 보세요!!!AUG 리더에 지원해 보세요!!!
AUG 리더에 지원해 보세요!!!
 
신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]신입 개발자 생활백서 [개정판]
신입 개발자 생활백서 [개정판]
 
sungmin slide
sungmin slidesungmin slide
sungmin slide
 

Mais de kidoki

Hadoop io
Hadoop ioHadoop io
Hadoop iokidoki
 
전문 검색 기술
전문 검색 기술전문 검색 기술
전문 검색 기술kidoki
 
Http 헤더
Http 헤더Http 헤더
Http 헤더kidoki
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약kidoki
 
14. no sql을 넘어
14. no sql을 넘어14. no sql을 넘어
14. no sql을 넘어kidoki
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구kidoki
 
9장. 문서 데이터베이스
9장. 문서 데이터베이스9장. 문서 데이터베이스
9장. 문서 데이터베이스kidoki
 
[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델kidoki
 
Code chapter15
Code chapter15Code chapter15
Code chapter15kidoki
 
Code chapter5
Code chapter5Code chapter5
Code chapter5kidoki
 
Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로kidoki
 
Ch.11 승진
Ch.11 승진Ch.11 승진
Ch.11 승진kidoki
 
Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직kidoki
 
Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란kidoki
 
11장. 분석 패턴의 적용
11장. 분석 패턴의 적용11장. 분석 패턴의 적용
11장. 분석 패턴의 적용kidoki
 
2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용kidoki
 
11장 시스템
11장 시스템11장 시스템
11장 시스템kidoki
 
10장 클래스
10장 클래스10장 클래스
10장 클래스kidoki
 
클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출kidoki
 
정규확률분포
정규확률분포정규확률분포
정규확률분포kidoki
 

Mais de kidoki (20)

Hadoop io
Hadoop ioHadoop io
Hadoop io
 
전문 검색 기술
전문 검색 기술전문 검색 기술
전문 검색 기술
 
Http 헤더
Http 헤더Http 헤더
Http 헤더
 
로그 수집, 집약
로그 수집, 집약로그 수집, 집약
로그 수집, 집약
 
14. no sql을 넘어
14. no sql을 넘어14. no sql을 넘어
14. no sql을 넘어
 
My sql 장애복구
My sql 장애복구My sql 장애복구
My sql 장애복구
 
9장. 문서 데이터베이스
9장. 문서 데이터베이스9장. 문서 데이터베이스
9장. 문서 데이터베이스
 
[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델[NoSQL] 2장. 집합적 데이터 모델
[NoSQL] 2장. 집합적 데이터 모델
 
Code chapter15
Code chapter15Code chapter15
Code chapter15
 
Code chapter5
Code chapter5Code chapter5
Code chapter5
 
Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로Ch18. 빅리그 거물에서 선지자로
Ch18. 빅리그 거물에서 선지자로
 
Ch.11 승진
Ch.11 승진Ch.11 승진
Ch.11 승진
 
Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직Ch7. 소프트웨어 r&d 조직
Ch7. 소프트웨어 r&d 조직
 
Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란Ch2. 좋은 소프트웨어란
Ch2. 좋은 소프트웨어란
 
11장. 분석 패턴의 적용
11장. 분석 패턴의 적용11장. 분석 패턴의 적용
11장. 분석 패턴의 적용
 
2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용2장. 의사소통과 언어 사용
2장. 의사소통과 언어 사용
 
11장 시스템
11장 시스템11장 시스템
11장 시스템
 
10장 클래스
10장 클래스10장 클래스
10장 클래스
 
클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출클러스터링을 통한 패턴 추출
클러스터링을 통한 패턴 추출
 
정규확률분포
정규확률분포정규확률분포
정규확률분포
 

Chapter 14. json

  • 1. Team-Mobs 박 기 덕 CHAPTER 14. JSON
  • 2. JSON이란? • JavaScript Object Notation, RFC 4627 • JavaScript 구문 형식을 따르며, 언어나 플랫폼에 독립적 • 미디어 타입 : „application/json‟ • 표현 가능한 자료형 • object, array, string, number, boolean, null
  • 3. JSON 자료형 • Object • 이름과 값의 집합, 이름은 항상 문자열, 값은 Json의 자료형 가능 • object는 {}로 감싸고, 멤버는 „,‟로 구분하며 이름과 값는 „:‟으로 구분 { “name” : { “first” : “John”, “last” : “Doe” }, “blog” : “http://blog.example.com”, “age” : 34, “interests” : [“Web”, “XML”, “REST”] }
  • 4. JSON 자료형 • Array • 순서를 가진 값의 집합, []감싸며 값은 „,‟로 구분 [ “foo”, “bar”, “baz” ] - 문자열의 배열 [ { “foo” : “bar” }, { “key” : “value” } ] - 오브젝트의 배열 [ [ 10, 10 ], [ 40, 50 ] ] - 배열의 배열 [ ] - 빈 배열 [ { “foo” : “bar” }, “baz”, 100, true, null ] - 복잡한 배열
  • 5. JSON 자료형 • String • 문자열은 반드시 이중인용부호(“)로 감싸 준다. • 모든 문자를 uxxxx (u에 이어 4자리의 16진수로 표현한 unicode)로 표현 가능 “가나다” - 단순한 문자열 “uAC00uB098uB2E4” - 에스케이프 표기한 “가나다” 문자 “foobarn” - 백 슬래시()와 줄바꿈(n) • Boolean • „true‟, „false‟ 모두 소문자 기술
  • 6. JSON 자료형 • Number • 정수와 부동소수점 모두 포함, 10진 표기로 한정 10 - 정수 값 -100 - 음수 값 30.1 - 소수점이 붙은 수치 1.0e-10 - 지수 • Null • 반드시 „null‟이라고 소문자 기술
  • 7. 일시 • Json에서 기본적으로 제공하는 자료형에 일시는 없음 • 개발자 스스로 규칙을 정해 사용 • 가장 단순한 방법으로 UNIX 시간을 수치로 표현 (1234567890 – 2009년 2월 14일 8시 31분 30초) • UNIX는 타임 존을 다루지 못함, 타임 존이 필요할 시 JavaScript의 Date 클래스 toString() 메소드 이용 (“Mon Nov 01 2010 05:43:35 GMT+0900” – Fierfox 3.6) (“Mon Nov 01 05:43:35 UTC+0900 2010” – IE 8) • JavaScript는 브라우져별로 출력이 달라지기 때문에 표준적인 ISO 8601 사용 권장 (“2010-11-01T05:43:35+09:00”)
  • 8. 링크 • 단순히 URI를 문자열로 표현 { “href” : “http://example.com/foo/bar” } • URI는 절대 URI로 표현 권장 • 멤버의 이름을 링크를 나타내는 값으로 지정하여 표현 권장
  • 9. 크로스 도메인 통신 • 불특정 다수의 서버에 엑세스 하는 것을 „크로스 도메인 통신‟ 이라 함 • Ajax에서 사용하는 XMLHttpRequest라는 JavaScript 모듈은 보안상 제한으로 하나의 서버와 통신 가능 • <script>요소를 이용해 크로스 도메인 통신 가능 • JSONP(Json with Paddinf)은 브라우져의 <script>요소를 이용해 크로스 도메인 통신 구현 • 클라이언트가 지정한 콜백 함수명을 랩핑하여 크로스 도메인 통신 구현
  • 10. 크로스 도메인 통신 • test.html에 2개의 <script>요소 존재, 첫번째에서는 콜백 함수 foo 정의, 두번째에서 특정 도메인 호출 <html xmlns=“http://www.w3.org/1999/xhtml"> <head> <title> 크로스 도메인 통신의 예 </title> </head> <body> <script type = “text/javascript”> function foo(zip) { alert(zip[“zipcode”]); } </script> <script src=“http://zip.ricollab.jp/1120002.json?callback=foo”></script> </body> </html>