본문 바로가기

Swift(IOS)

[내용정리] Swift - JsonArray와 JsonObject의 차이

API서버에서 데이터를 가져오는 과정에서

JsonArray의 JsonObject 형태로 데이터를 내려받는것을 알게되었다.

둘의 차이는 무엇일까?

 

 

우선 Json은 key와 value로 이루어진 데이터의 집합이다.

swift의 dictionary와 비슷하게

둘의 사이를 : 로 구분짓는다.

 

 

예를들어 

name이라는 key안에 Daesung이라는 value(값)이 저장 되는것이다.

"name" : "Daesung"

 

 

데이터가 조금더 많다면 어떻게 될까?

학생들을 Json으로 만들어보자

name age gender
홍길동 12 man
김장미 11 woman
김콩콩 16 man

 

위 데이터를 JsonArray로 나타내어 본다.

배열답게 [대괄호]를 활용하여 모든 데이터를 정리하였다.

물론 접근도  index의 순서에 맞게 0, 1, 2등으로 접근한다.

"student" : [{
    "name" : "홍길동",
    "age" : 12,
    "gender" : "man"
}, {
    "name" : "김장미",
    "age" : 11,
    "gender" : "woman"
}, {
    "name" : "김콩콩",
    "age" : 16,
    "gender" : "man"
}]

 

 

JsonObject로 나타내어 본다.

각자 다른 key, value묶음끼리는 comma(,)로 구분한다.

{중괄호}를 활용하여 데이터를 구분한다. Array 같은 방법으로 접근이 불가하여 (0, 1, 2...)

Student1, Student2 등으로 구분지어 나타내었다.

"student1" : {
    "name" : "홍길동",
    "age" : 12,
    "gender" : "man"
},
"student2" : {
    "name" : "김장미",
    "age" : 11,
    "gender" : "woman"
},
"student3" : {
    "name" : "김콩콩",
    "age" : 16,
    "gender" : "man"
}

 

둘의 공통은?

  • : 를 활용하여 Key Value를 구분 한다.
  • key-value의 묶음간의 구분은 ,(comma)로 한다. 

 

둘의 차이는?

JsonArray

  • 배열 형태의 구조를 띄고 있다. 
  • [대괄호]를 사용하여 값들을 담고 내에서 {}를 활용하여 구분한다.
  • 이후 데이터를 꺼낼때 index를 활용하여 꺼낼 수도 있으므로 순서에 대한 고려를 한다.

JsonObject

  • {중괄호}를 활용하여 구분한다.
  • 배열과 달리 순서가 구분되어있지 않다.