JSON(JavaScript Object Notation)은 경량의 데이터 교환 형식입니다. 텍스트 기반으로 되어 있으며, 사람이 읽고 쓰기 쉬울 뿐만 아니라, 기계가 파싱하고 생성하기에도 용이합니다. JSON은 자바스크립트 객체 표기법을 기반으로 하지만, 프로그래밍 언어나 플랫폼에 독립적이어서 대부분의 프로그래밍 언어에서 사용할 수 있습니다.
JSON은 데이터를 전송할 때 사용되는 주요한 형식 중 하나로, 주로 웹 애플리케이션에서 서버와 클라이언트 간의 데이터를 주고받을 때 사용됩니다. 간단한 예로, 웹 서비스가 데이터베이스에서 정보를 조회한 후 그 결과를 웹 페이지에 보여주기 위해 클라이언트(브라우저)로 데이터를 전송할 때 JSON 형식을 이용할 수 있습니다.
JSON 구조는 크게 두 가지 형태로 나뉩니다:
객체(Object): 중괄호({})를 사용하여 표현하며, 내부에는 키(key)-값(value) 쌍으로 구성된 데이터가 들어갑니다. 예: {"name": "뤼튼", "age": 30}
배열(Array): 대괄호([])를 사용하여 표현하며, 값들의 순서 있는 리스트를 나타냅니다. 예: ["apple", "banana", "cherry"]
JSON은 간단하면서도 효율적인 데이터 구조로, 웹 개발에서 뿐만 아니라 여러 분야에서 널리 사용되고 있습니다.
JSON (JavaScript Object Notation)은 가벼운 데이터 교환 형식으로 인간이 읽고 쓰기에 편하고, 기계가 구문 분석하고 생성하기 쉽다. 이것은 JavaScript 프로그래밍 언어 표준 ECMA-262 3판(1999년 12월)의 일부분을 기반으로 한다.
JSON은 완전히 언어 독립적인 텍스트 형식이지만 C를 비롯한 C++, C#, Java, JavaScript, Perl, Python 및 기타 여러 가지 C 계열 언어의 프로그래머에게 익숙한 규칙을 사용한다. 이러한 속성은 JSON을 이상적인 데이터 교환 언어로 만든다.
JSON은 두 가지 구조를 기반으로 한다.
name/value 쌍의 모음
-- 다양한 언어에서 이것은 object , 레코드, 구조체, 사전, 해시 테이블, 키 목록 또는 연관 배열로 구현된다.
정렬된 값 목록
-- 대부분의 언어에서 이것은 배열 , 벡터, 목록 또는 시퀀스로 구현된다.
이러한 구조는 거의 모든 최신 프로그래밍 언어에서 지원하는 보편적인 데이터 구조로서, 프로그래밍 언어와 교환할 수 있는 데이터 형식도 이러한 구조를 기반으로 한다는 것은 의미가 있다.
보기
보기
보기
보기
보기
https://mvnrepository.com/artifact/org.json/json/20240303
에서 pom.xml에 의존성을 추가한다.
JSONObject constructor는 외부 형식인 JSON 문자열을 get 및 opt method를 사용하여 값을 검색할 수 있는 내부 형식으로 변환하거나 put 및 toString method를 사용하여 값을 JSON 문자열로 변환하는 데 사용할 수 있다.
package com.nhnacademy;
import org.json.JSONException;
import org.json.JSONObject;
public class Exam01 {
public static void main(String[] args) {
try{
JSONObject addressOb = new JSONObject();
addressOb.put("code", 13487);
addressOb.put("city", "Seongnam");
JSONObject object = new JSONObject();
object.put("address", addressOb);
object.put("name", "nhn");
System.out.println(object.toString());
} catch(JSONException e) {
System.err.println(e);
}
}
}
실행결과
{"address":{"code":13487,"city":"Seongnam"},"name":"nhn"}
package com.nhnacademy;
import org.json.JSONObject;
public class Exam05 {
public static void main(String[] args) {
JSONObject customer = new JSONObject();
customer.put("name", "nhn");
customer.put("age", 20);
System.out.println(customer);
Object name = customer.get("name");
System.out.println(name.getClass().getTypeName());
System.out.println(name);
Object age = customer.get("age");
System.out.println(age.getClass().getTypeName());
System.out.println(age);
}
}
실행결과
{"name":"nhn","age":20}
java.lang.String
nhn
java.lang.Integer
20
JSONObject.opt 메소드??
JSONArray는 요소들이 순서대로 배열된 값이다.
외부 텍스트 양식은 쉼표가 있는 대괄호([ ])로 묶인 문자열로 요소들을 구분한다.
내부 형식은 인덱스로 값에 접근하는 get 및 opt method, 값을 추가하거나 바꾸기 위한 put method를 포함한다.
요소들은 다음 유형 중 하나일 수 있다.
-- boolean
-- JSONArray
-- JSONObject
-- Number
-- String
-- JSONObject.NULL
constructor는 JSON 텍스트를 Java object로 변환할 수 있다. toString method는 JSON 텍스트로 변환된다.
get method는 값을 찾을 수 있으면 반환하고 찾을 수 없으면 예외를 반환한다.
opt method는 예외를 던지는 대신 기본값을 반환하므로 선택적 값을 가져오는 데 유용하다.