brunch

You can make anything
by writing

C.S.Lewis

by 윤형도 Apr 25. 2017

빠르게 배우는안드로이드-25
json이란

json이란?

https://brunch.co.kr/@henen/25

이전 강좌의 결과 형식을 안드로이드에서 지원하는 JSON형식으로 파싱하는 법을 알아보겠습니다.


그렇다면 JSON이란 것은 무엇이고 왜 생겨났는지를 먼저 알아야할것같습니다.


javascript Object Notation의 약자로 자바스크립트 객체 형식입니다.


EX)JSON형식 예제

{"employees":[

{ "firstName":"John", "lastName":"Doe" },

{ "firstName":"Anna", "lastName":"Smith" },

{ "firstName":"Peter", "lastName":"Jones" }

]}


예를 들어서


1 홍길동 010-1234-5678

2 홍길동 010-1211-1234

3 홍길동 010-1234-1234


이 데이터를 httpRequest나, txt파일에서

읽어와야할때를 생각해봅시다.


1은 순번, 홍길동은 이름 ,010-1234-5678 은 전화번호입니다.


1 ^ 홍길동 ^ 010-1234-567  "엔터"


한줄 한줄은 엔터단위로 읽고 그 안의 각각은 띄어쓰기 단위로 읽어서 저장을 할수있을것입니다.


아니면


1//홍길동//010-12234-5678&&&2//홍길동//010-1234 이런식으로 구분자를 만들어 놓고
이 구분자를 통해 읽을수도 있겠죠


이렇게 데이터를 서로간에 읽을 수있는 포맷이 필요해졌습니다. 그래서

XML이라는 HTML과 비슷한 형식의 포맷이 등장하게됩니다.



XML

<Address>

   <Friend>

  <no>1</no> <Name>홍길동</Name> <phone>010-1234-5678</phone>

   </Friend >

   <Friend >

   <no>2</no> <Name>홍길동</Name> <phone>010-1211-xxxx</phone>

   </Friend >

   < Friend >

    <no>3</no> <Name>홍길동</Name> <phone>010-1234-yyyy</phone>

   </Friend >

</ Address>

특징 :

전반적으로 HTML과 비슷한 구조를 띄고 있다.

유연한 구조를 가지고 있는 것을 볼 수 있다.

어떤 항목 표기가 되어 쉽게 파악할수 있습니다.


XML코드를 보았을 때 문제점

반복되고 낭비되는 Text들이 많이 보인다.

<Address> </Address>  <Friend></Friend>.. 시작 때만 표시해도 될 것 같은데.. 반복등장해서

이 때문에 용량이 커지고 그만큼 읽는데 시간이 느릴 것 이다.



그렇다면 이 XML을 저희가 볼 JSON형식으로 확인해볼까요?



Json

{

   "Address": {

      "Friend": [

         {

            "no": "1",

            "Name": "홍길동",

            "phone": "010-1234-5678"

         },

         {

            "no": "2",

            "Name": "홍길동",

            "phone": "010-1211-xxxx"

         },

         {

            "no": "3",

            "Name": "홍길동",

            "phone": "010-1234-yyyy"

         }

      ]

   }

}


낭비되는 텍스트가 줄었습니다.



  비교를 해보면




이렇게 해서 요즘에는 XML 포맷 보다는 JSON 포맷으로 데이터를 전송하고 있습니다.

다음 강의에서는


https://brunch.co.kr/@henen/25

의 데이터를 안드로이드에서 제공하는 기본 JSON Class로 읽어보도록 하겠습니다.












매거진의 이전글 빠르게 배우는 안드로이드-24 retrofit-http
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari