20091584 정정윤 20090404 김희수 20090753 안성민
1. JSON? 2. XML 과 JSON 3. 사용법및예제 4. 참고문헌
JSON?
1) 정의 JavaScript Object Notation 의약자이며, 경량의 DATA- 교환형식이다. 이형식은사람이읽고쓰기에용이하며, 기계가분석하고생성함에도용이하다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 의일부에토대를두고있다. JSON 은완벽하게언어로부터독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외다수 - 의프로그래머들에게친숙한관습을사용하는텍스트형식이다. 이러한속성들이 JSON 을이상적인 DATA- 교환언어로만들고있다.
1) 정의 JavaScript Object Notation 의약자이며, 경량의 DATA- 교환형식이다. 이형식은사람이읽고쓰기에용이하며, 기계가분석하고생성함에도용이하다. JavaScript Programming Language, Standard ECMA-262 3rd Edition - December 1999 의일부에토대를두고있다. JSON 은완벽하게언어로부터독립적이지만 C-family 언어 - C, C++, C#, Java, JavaScript, Perl, Python 그외다수 - 의프로그래머들에게친숙한관습을사용하는텍스트형식이다. 이러한속성들이 JSON 을이상적인 DATA- 교환언어로만들고있다.
1) 정의 - JSON : JavaScript Object Notation - 경량의 DATA 교환형식 - 사람이읽고쓰기쉬움 - 기계가파싱하고생성하기쉬움
2) 특징 - JavaScript 의 Array 문법으로데이터구조를기술하는방법 - XML 이가지는유연성과구조적데이터표현기능확보 - XML 이가진오버헤드를줄이는방법으로사용 - 클라이언트에서는 JavaScript 의 eval() 로객체생성 - 별도의파싱절차가필요없어클라이언트에서처리퍼포먼스가높음
2) 특징 - 서버측 JSON 파싱모듈은거의모든언어별로지원 (Java, C, ActionScript, Delphi, Ruby, Perl, CAMAL 등 ) - XML 이표현하는구조적인정보모두표현가능
2) 특징 - 송수신데이터로 XML 를사용하는것에비해훨씬빠르고, 간편하다. - language-independent text format, 대부분의브라우저, 언어에서지원된다.
3) 데이터타입 Object - 중괄호 ({}) 로시작하고끝남 - member : 문자열과값으로구성되어있고콜론 ( 으로구분, 각멤버들은콤마 (,) 로구분 - value : 값은 object, string, number, array, true, false, null 사용가능
3) 데이터타입 String - 문자열은쌍따옴표 (") 로둘러쌓여야함 - Unicode character 또는일반적인 escape 문자 (\", \\, \/, \b, \f, \n, \r, \t, \u four-hex-digits) 를포함한다.
3) 데이터타입 Number - integer, real or floating point Array - an ordered sequence of values - 대괄호 ([]) 로시작하고끝나며각값은콤마 (,) 로구분
4) 문법예
4) 문법예 최상위 Object 이고, 다른데이터들은이 Object 의멤버 숫자와문자열데이터 숫자배열
2 장은심심한분들만읽어보세요 ~ XML 과 JSON
1) XML vs JSON XML 의장점 - 작성하기가간편 - XML 사람이읽기가쉬움 - DTD 등 XML자체의기능을확장할여지가많음
1) XML vs JSON XML 의단점 - 문서의양이많음 ( 실데이터가아닌 tag) - 불필요한데이터가계속해서나타남
1) XML vs JSON JSON 의장점 - 용량이적고, 속도가빠름 - 효율적인데이터구성이가능 - 사용하기쉽다.
1) XML vs JSON JSON 의단점 - 내용의의미파악이힘들수도있다. - 대용량급의데이터송수신에부적합한모습도있다.
1) XML vs JSON
1) XML vs JSON 딱보기에도 XML 보다 JSON 사용시데이터의전송량이확실히줄어든다.
1) XML vs JSON 그러나전송하는자료의양이많아질수록 JSON 의출력시간이비약적으로증가하는것을알수있다.
사용법및예제
1) Android에서 DB를이용해 JSON을사용할려면? a. 안드로이드 JSON 명령어 b. APMsetup 을설치 c. Database 생성및조작 d. PHP 를이용한데이터베이스접근 e. Android 에서 JSON 이용하기
a) 안드로이드 (eclipse) 에서의 JSON 명령어 ADK 사용시따로라이브러리추가할필요없음 1. JSON Object 생성 ( org.json.jsonobject ) ᅳ ex) JSONObject jsonobject = new JSONObject(jString); JSON object 생성자 JSONObject() JSONObject(JSONObject jo, java.lang.string[] names) JSONObject(JSONTokener x) JSONObject(java.util.Map map) JSONObject(java.lang.Object bean) JSONObject(java.lang.Object object, java.lang.string[] names) JSONObject(java.lang.String source) JSONObject(java.lang.String basename, java.util.locale locale)
a) 안드로이드 (eclipse) 에서의 JSON 명령어 2. JSON Array 생성 ( org.json.jsonarray ) ᅳ ex) JSONArray jsonarray = new JSONArray(); JSON Array 생성자 JSONArray() JSONArray(java.util.Collection collection) JSONArray(JSONTokener x) JSONArray(java.lang.Object array) JSONArray(java.lang.String source)
a) 안드로이드 (eclipse) 에서의 JSON 명령어 3. 자주사용되는메소드 get(java.lang.string key) getint(java.lang.string key) getboolean(java.lang.string key) getdouble(java.lang.string key) getjsonarray(java.lang.string key) getjsonobject(java.lang.string key) getstring(java.lang.string key) optstring(java.lang.string key) optjsonarray(java.lang.string key) optjsonobject(java.lang.string key) Get the value object associated with a key Get the int value associated with a key. Get the boolean value associated with a key. Get the double value associated with a key. Get the JSONArray value associated with a key. Get the JSONObject value associated with a key. Get an optional string associated with a key. Get an optional string associated with a key. Get an optional JSONArray associated with a key. Get an optional JSONObject associated with a key.
a) 안드로이드 (eclipse) 에서의 JSON 명령어 3. 자주사용되는메소드 tostring() put(java.lang.string key, type value) remove(java.lang.string key) wrap(java.lang.object object) write(java.io.writer writer) has(java.lang.string key) isnull(java.lang.string key) length() names() Make a JSON text of this JSONObject. Put a key/value pair in the JSONObject. Remove a name and its value, if present. Wrap an object, if necessary. Write the contents of the JSONObject as JSON text to a writer Determine if the JSONObject contains a specific key. Determine if the value associated with the key is null or if there is no value. Get the number of keys stored in the JSONObject. Produce a JSONArray containing the names of the elements of this JSONObject.
a) 안드로이드 (eclipse) 에서의 JSON 명령어 4. JSON Exception ( org.json.jsonexception ) JSONException(java.lang.String message) JSONException(java.lang.Throwable cause) 5. JSON Exception Method ( java.lang.throwable ) getcause()
b) APMsetup 설치 http://www.apmsetup.com 에서 apm_setup 을다운받는다.
b) APMsetup 설치 클릭하여다운
b) APMsetup 설치 다음을 click 하며설치를진행
b) APMsetup 설치 설치가완료되면작업표시줄에 APMSETUP이실행됩니다. 오른쪽키를눌러모니터보기를 click click 작업표시줄
b) APMsetup 설치 Apache 와 MySQL 이모두정상동작중임을확인 실행화면
b) APMsetup 설치 서버가정상작동중인지확인하기위해 http://127.0.0.1 혹은 http://localhost 주소로들어갑니다. 정상설치되었다는문구와설치디렉터리정보가나옵니다. 나의서버위치는 C://APM_Setup안의 /htdocs 디렉터리입니다.
b) APMsetup 설치 이제서버환경설정을합니다. Apache, php, MySQL 등의설정을할수있습니다. click
b) APMsetup 설치 MySQL root 패스워드를변경하여줍니다. MySQL 의기본계정은 root 이며패스워드는 apmsetup 입니다. click 변경완료
b) APMsetup 설치 MySQL 신규계정생성도합니다. 클릭 클릭
b) APMsetup 설치 이제 phpmyadmin 을이용하여 MySQL 을살펴봅니다. 접속은 http://127.0.0.1/myadmin/ 으로합니다. ( 마지막슬래쉬넣어야함 )
c) Database 생성및조작 click
c) Database 생성및조작 비밀번호입력
c) Database 생성및조작 생성된 Database 를본다 Database 를생성
c) Database 생성및조작 DB 를사용 사용중인 DB 의 Table 을보여준다 Table 생성
c) Database 생성및조작 Record 삽입
d) PHP 를이용하여 Database 접근 전체 PHP 소스 APM_SETUP/htdocs 폴더에 PHP 파일로작성
d) PHP 를이용하여 Database 접근 1 2 3 4 5 1. 자신의컴퓨터를의미, 127.0.0.1로나타내도무방 2. Database 계정 3. Database 비밀번호 4. Database 이름 5. 문자인코딩을 utf-8로설정
d) PHP 를이용하여 Database 접근 1 2 3 1. query 라는변수에쿼리문문자열저장 2. sql 에쿼리문을보내고반환값을 data 변수에저장 3. json 이라는이름의배열생성
d) PHP 를이용하여 Database 접근 1. if 문에서 data 변수 DB select 한행개수를확인 2. while 문을통하여반복적으로 data 가없을떄까지 fetch 3. json 배열에 data 를저장
d) PHP 를이용하여 Database 접근 1. data 변수값메모리해제 2. DB 접속종료 3. json 배열에저장된값 JSON 방식으로데이터출력
e) Android 에서 JSON 이용하기 Android 프로젝트를생성후소스코드를수정해보자 http://ip 주소 / 파일명.php MainActivity.java
e) Android 에서 JSON 이용하기 MainActivity.java
e) Android 에서 JSON 이용하기 MainActivity.java
파싱할값의키값입력 e) Android 에서 JSON 이용하기 php 에서설정한 Json 배열명입력 MainActivity.java
e) Android 에서 JSON 이용하기 activity_main.xml
e) Android 에서 JSON 이용하기 잊지말고반드시추가!!!!!... AndroidManifest.xml
e) Android 에서 JSON 이용하기 실행화면
참고문헌
출처 JSON 의정의 - http://kimstar.pe.kr/blog/74 PHP, Android 소스코드참조 - http://mobilekit.tistory.com/ XML 과 JSON 비교 - http://blog.naver.com/postview.nhn?blogid=gustjq&logno=54895863 JSON 명령어 - http://www.json.org/javadoc/org/json/package-summary.html JSON 예제소스코드 GitHub 주소 https://github.com/lbsscheduler/json_seminar