๐ JSON
- JavaScript Object Notation
- ์ธ์ ๋ ์ง ์๋ฐ์คํฌ๋ฆฝํธ ์ค๋ธ์ ํธ๋ก ๋ณํํ ์ ์๋ ๋ฌธ์์ด ํ์
- ๋ค์ํ ์ธ์ด๋ค์ ๊ฐ์ฒด๋ก ๋ณํํ๊ธฐ์๋ ํธ๋ฆฌํ๊ธฐ ๋๋ฌธ์ ๊ฐ์ฒด๋ค์ ๊ณต์ฉ์ด๋ก ํ์ฉ๋๊ณ ์๋ค
- ์์ฑ-๊ฐ ์์ผ๋ก ๊ตฌ์ฑ๋์ด์๋ค
- ํน์ ์ธ์ด์ ์ข
์๋์ด์์ง ์์ ๊ณตํต ๊ท๊ฒฉ
๐ผ JSONObject
- ์๋ฐ์ Map์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ ๊ฐ์ฒด
- ํด๋น ๊ฐ์ฒด์ ๊ฐ๋ค์ ์ถ๊ฐ ํ ํ์ toJSONString()์ ํธ์ถํ์ฌ JSON ํ์์ ๋ฌธ์์ด์ ์ป์ ์ ์๋ค
- ์๋ฐ์ ๊ธฐ๋ณธ ๋ฐฐ์ด์ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ค
- ๋ฐฐ์ด์ ๊ฐ์ผ๋ก ์ถ๊ฐํ ๋๋ List(๋๋ JSONArray)๋ก ์ถ๊ฐํ๋ฉด ๋๋ค
- ๊ฐ์ฒด๋ฅผ ๊ฐ์ผ๋ก ์ถ๊ฐํ ๋๋ Map(๋๋ JSONObject)์ผ๋ก ์ถ๊ฐํ ์ ์๋ค
๐ผ JSONParser
- JSON ํ์ ๋ฌธ์์ด์ JSONObject๋ก ๋ณํํ๋ ๊ธฐ๋ฅ์ ๊ฐ์ง ํด๋์ค
- ๋ฌธ์์ด๋ก ์ ๋ฌํ๊ฑฐ๋ Reader๋ฅผ ์ ๋ฌํ์ฌ ์ฌ์ฉํ ์ ์๋ค
๐ ์๋ฐ์์ JSON์ ์ฌ์ฉํ๊ธฐ
- ์์กด์ฑ ์ฃผ์
- json-simple์์ maven์ ๋ณต์ฌํด์ pom.xml์ ๋ถ์ฌ๋ฃ๊ธฐ(์๋๋ด์ฉ์ ๋ถ์ฌ๋ฃ์ด๋ ๋จ)
<dependency>
<groupId>com.googlecode.json-simple</groupId>
<artifactId>json-simple</artifactId>
<version>1.1.1</version>
</dependency>
- JSON ๊ฐ์ฒด๋ฅผ ์์ฑํ์ฌ ์ฌ์ฉํ๊ธฐ
- ์๋ฐ์ Map์ ๋ฐ๋ก JSON ํํ ๋ฌธ์์ด๋ก ๋ณํํด์ค๋ค
- ์๋ฐ์คํฌ๋ฆฝํธ์ ๋ฐฐ์ด๋ก ์ ๋ฌํ๊ณ ์ถ์ ๋๋ List๋ฅผ ์ฌ์ฉํ๋ค
- ๊ฐ์ฒด ๋ด๋ถ์ ๊ฐ์ฒด๋ฅผ ๋ฃ์ ์ ์๋ค
public class SimpleJsonTest {
public static void main(String[] args) {
JSONObject obj = new JSONObject();
obj.put("name", "ํ๊ธธ๋");
obj.put("age", 40);
System.out.println(obj);
Map<String, Object> map = new HashMap<>();
List<String> hobbies = new ArrayList<>();
Map<String, Object> car = new HashMap<>();
car.put("carName", "์คํฌํฐ์ง");
car.put("carNumber", "12๊ฐ3456");
car.put("carAge", 8);
hobbies.add("๋๊ตฌ");
hobbies.add("์ผ๊ตฌ");
hobbies.add("๋ฐ์ผ๊ตฌ");
map.put("name", "์๊บฝ์ ");
map.put("phone", "123-1234-1234");
map.put("age", 33);
map.put("hobby", hobbies);
map.put("car", car);
System.out.println(new JSONObject(map));
}
}
๐บ ์ถ๋ ฅ ๊ฒฐ๊ณผ >>
๐ ์๋ฐ์คํฌ๋ฆฝํธ์์ JSON ์ฌ์ฉํ๊ธฐ
๐ผ JSON.stringify()
JSON.stringify(value);
- ์ธ์๋ก ์ ๋ฌ๋ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ๋ฌธ์์ด๋ก ๋ณํํ์ฌ ๋ฐํํ๋ค
- value์๋ ๋ณํํ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ฅผ ์ ๋ฌํ๋ค
- ์ด ๋ฉ์๋๋ UTF-16์ผ๋ก ์ธ์ฝ๋ฉ๋ JSONํ์์ ๋ฌธ์์ด์ ๋ฐํํ๋ค
๐ผ JSON.parse()
JSON.parse(text);
- ์ธ์๋ก ์ ๋ฌ๋ฐ์ ๋ฌธ์์ด์ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ์ฒด๋ก ๋ณํํ์ฌ ๋ฐํํ๋ค
- text์๋ ๋ณํํ ๋ฌธ์์ด์ ์ ๋ฌํ๋ค(text๋ ์ ํจํ JSONํ์์ ๋ฌธ์์ด์ด์ฌ์ผ ํจ)
๐ JSON๊ณผ JavaScript Object์ ์ฐจ์ด์
- JavaScript Object๋ ๋ฌธ์์ด ๊ฐ ๋๋ key์ ""๋ฅผ ์๋ตํ ์ ์์ง๋ง JSON์ ๋ฐ๋์ ์จ์ผํ๋ค
- JavaScript Object๋ ๋ฌธ์์ด ๊ฐ ๋๋ key์ ''๋ฅผ ์ธ ์ ์์ง๋ง JSON์ ""๋ง ์จ์ผํ๋ค
- JSON์ ๋ฌธ์์ด ํ์์ ์ด๋ฆ์ด๊ณ JavaScript Object๋ ์๋ฐ์คํฌ๋ฆฝํธ์ ์ธ์คํด์ค์ด๋ค
๐ JSON์ ํ์ฉ
- RestController์์ ๋ฐ์ดํฐ application/json ํ์์ผ๋ก ์๋ตํ ๋ ์ฌ์ฉํ๋ค
- JSON ํ์์ ๋ฌธ์์ด์ ๋ฐ์ ์น ํ์ด์ง์์ ํด๋น ๊ฐ์ JavaScript Object๋ก ๋ณํํ์ฌ ํ์ด์ง ๊ตฌ์ฑ์ ํ์ฉํ ์ ์๋ค
- ์์ฒญ์ JSON ํ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด DB์ ๋ฐ์ํ๋ ๊ฒ๋ ๊ฐ๋ฅํ๋ค (์์ฃผ ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋)
๐ผ Parsing
- JSON ํ์ ๋ฌธ์์ด -> JSONObject๋ก ๋ง๋ค๊ธฐ
public class SimpleJsonTest {
public static void main(String[] args) {
JSONParser parser = new JSONParser();
try {
JSONObject parsed = (JSONObject)parser.parse(
"{\"fruit\":\"apple\",\"drink\":\"ade\""
+ "\"flavor\":[3,5,6,11]}");
System.out.println("JSON ๋ฌธ์์ด๋ก ๊ฐ์ฒด ๋ง๋ค์ด์ ์๋ฐ์์ ํ์ฉํ๊ธฐ");
System.out.println(parsed.get("fruit"));
System.out.println(parsed.get("drink"));
List<Integer> flavorNums = (List<Integer>)parsed.get("flavor");
for(int i = 0; i < flavorNums.size(); i++) {
System.out.println("flavor["+i+"] : " + flavorNums.get(i));
}
} catch (ParseException e) {
e.printStackTrace();
}
}
}
๐บ ์ถ๋ ฅ ๊ฒฐ๊ณผ >>
๐ ์ฐธ๊ณ ์๋ฃ