1. JSON 구조란?
JSON은 자바스크립트의 객체 표기법으로부터 파생된 부분 집합입니다.
따라서 JSON 데이터는 다음과 같은 자바스크립트 객체 표기법에 따른 구조로 구성됩니다.
- 객체(object)는 중괄호({})로 감싸며, 키(key)와 값(value)은 콜론(:)으로 구분됩니다. 각각의 키-값 쌍은 쉼표(,)로 구분됩니다.
- 배열(array)은 대괄호([])로 감싸며, 값은 쉼표(,)로 구분됩니다.
- 문자열(string)은 큰따옴표("")로 감싸며, 특수 문자를 이스케이프(escape)할 수 있습니다.
- 숫자(number)는 정수 또는 실수로 표현할 수 있습니다.
- 부울(boolean)은 참(true) 또는 거짓(false) 값을 가집니다.
- null은 값이 없음을 나타냅니다.
2. 실제 형식
2-1. JSON 데이터
// 형식
"데이터이름" : "값"
// 실제
"name" : "John Smith"
2-2. JSON 객체
JSON 객체는 JSON 데이터들이 중괄호로 묶인 것을 의미합니다.
{
"name": "John Smith",
"age": 30,
"email": "john.smith@example.com",
"languages": ["English", "Spanish", "French"],
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zipcode": "12345"
}
}
2-3. JSON 배열
JSON 배열은 JSON 데이터에서 대괄호로 묶여서 값들을 나열한 것을 의미합니다. 위의 코드에서 "languages"가 이에 해당합니다.
"languages": ["English", "Spanish", "French"]
혹은 아래와 같이 JSON 객체를 포함하는 배열을 만들 수도 있습니다.
[
{
"name": "John Smith",
"age": 30,
"email": "john.smith@example.com"
},
{
"name": "Jane Doe",
"age": 25,
"email": "jane.doe@example.com"
},
{
"name": "Bob Johnson",
"age": 40,
"email": "bob.johnson@example.com"
}
]
3. 안드로이드 스튜디오에서 사용
이제 구조는 알았으나 실제로 사용할 때, 어떻게 JSON 구조를 만들어야 할 지 머리가 복잡할 수 있다. 이럴때 유용하게 사용할 수 있는 플러그인이 안드로이드 스튜디오에 존재한다. 방법은 아래와 같다.
Android Studio > File > Settings > Plugins > "JSON To Kotlin" 검색 > Install
{
"name": "John Smith",
"age": 30,
"email": "john.smith@example.com",
"languages": ["English", "Spanish", "French"],
"address": {
"street": "123 Main St",
"city": "Anytown",
"state": "CA",
"zipcode": "12345"
},
"phone_numbers": [
{
"type": "home",
"number": "555-1234"
},
{
"type": "work",
"number": "555-5678"
}
],
"job_history": [
{
"company": "Acme Inc",
"title": "Software Engineer",
"start_date": "2015-01-01",
"end_date": "2017-12-31"
},
{
"company": "Beta Corp",
"title": "Senior Software Engineer",
"start_date": "2018-01-01",
"end_date": null
}
]
}
만약 위와 같은 복잡한 JSON 데이터도 이 플러그인을 이용하면 간단하게 Data Class로 제작할 수 있다.
사용 방법은 추가할 Package에 우클릭으로 누르고 New > Json To Kotlin Class를 누르고 위의 JSON 형식을 입력하고 Class의 이름을 지정한 다음에 Create 버튼을 누르면 된다. 결과는 아래와 같다.
data class exampleJSON(
val address: Address,
val age: Int,
val email: String,
val job_history: List<JobHistory>,
val languages: List<String>,
val name: String,
val phone_numbers: List<PhoneNumber>
)
data class PhoneNumber(
val number: String,
val type: String
)
data class JobHistory(
val company: String,
val end_date: String,
val start_date: String,
val title: String
)
data class Address(
val city: String,
val state: String,
val street: String,
val zipcode: String
)
'Kotlin > 개념 정리' 카테고리의 다른 글
개념 정리: Retrofit2 사용 법 (0) | 2023.03.08 |
---|---|
개념 정리 : 뷰 모델 (0) | 2023.02.17 |
개념 정리 : 라이브 데이터(Live Data) (0) | 2023.02.17 |
개념 정리 : 데이터 바인딩 (0) | 2023.02.17 |
개념 정리 : 뷰 바인딩 (0) | 2023.02.17 |