2011. 8. 8. 17:28
▣ JSON 파서란?
  - XML보다 좀 더 간략화된 정보 전달 방법 중 하나 =>가볍고! 구현이 편함!(서버와의 연동은 JSON~!)
  - JSON(Java Script Object Notation)은 웹에서 정보를 주고 받는 경량화된 방법이다.
  - JSON은 자바 스크립트에서 주로 사용되는 방법이지만 다른 언어에서도 수치, 논리, 문자열, 객체, 배열 등의 타입이 약간씩 다른 형태로 존재하므로 대부분의 언어에 활용할 수 있다.

▣ JSON의 특징 및 장점
  - 데이터 파일은 단순한 유니코드 텍스트 파일로 사람이 읽을 수 있고 직접 편집도 가능하다.
  - 단순한 텍스트 파일이므로 네트워크로 전송하기 편리하며 텍스트를 읽고 쓸 수 있는 모든 언어나 플랫폼에서 사용이 가능하다.
  - 헤더, 네임스페이스 따위의 형식적인 정보나 구두점들이 없고 정보 자체만을 가지므로 XML보다 일반적으로 길이가 짧다.
  - 대부분 언어에 JSON 파서가 라이브러리 형태로 제공되므로 직접 문자열을 파싱할 필요가 없다.
  - RFC 4627로 포맷이 규격화되어 있어 나름대로 표준이 정립되어 있다.

▣ JSON에 저장되는 정보의 형태
  - 배열 : 대괄호 안에 값을 콤마로 구분하여 나열하며, 대괄호 안에 나오는 순서대로 배열 요소의 순서가 매겨진다.[1, 2, 3]
  - 객체 : 중괄호 안에 있는 이름 : 값의 형태로 멤버 하나를 표현하고 각 멤버는 콤마로 구분한다.
순서가 아닌 이름으로 읽기 때문에 멤버의 순서는 의미가 없다. { "name" : 29 }
  - 단순 값 : 수치, 문자열, 논리형, null 등의 4가지 타입을 지원하며, 날짜나 시간, 화폐 등의 복잡한 정보는 따로 지원하지 않으므로 문자열 형태로 표현해야 한다.

▣ JSONArray 클래스는 JSON 파일에서 배열을 읽어들인다.

▣ 생성자로 JSON 문자열을 전달하면 이 문자열을 파싱하여 내부 메모리에 배열 형태로 저장할 것이다.
   ( 내부 메모리에 배열 형태로 저장하기에, 연속적인 메모리 공간에 존재하기에 빠르다. )



[사용방법]

▩ 배열에 저장된 값을 읽을 때는 다음 메서드를 호출한다. -> 인수가 다 int 기반에 index
  - Object get (int index)
  - int getInt (int index)
  - String getString (int index)
  - boolean getBoolean(int index)
  - JSONArray getJSONArray (int index)
  - JSONObject getJSONObject (int index)

▩ JSONObject 클래스는 JSON 파일에서 객체를 읽어들이며 멤버들을 읽을 때는 다음 메서드를 호출한다.
  - Object get (String key)
  - int getInet(String key)
  - String getString (String key)
  - boolean getBoolean(String key)
  - JSONArray getJSONArray (String key)
  - JSONObject getJSONObject (String key)

▩ JSON 파일에 저장되는 정보가 주로 배열과 객체이므로 JSONArray, JSONObject 두 클래스와 그 메서드들로 모든 정보를 다 추출할 수 있다.



☆ JSON 파서 (실습 예제 1) .. String 값 파싱..

 


main_1.xml



JSONArrayTest.java




★ JSON파서 (실습예제 2)

 



main_2.xml



JSONObjectTest.java




실습 예제 :




출처 : 한빛미디어_ 안드로이드 책자
Posted by Triany