spring프로젝트_0908
ajax로 데이터 송수신(json활용)
JSON.stringify() / JSON.parse() 차이
-----------------------------------------------------------------------------------------------------------------------------------------------------------
** java 에서 json 다루는 방법 (Gson라이브러리)
Gson :: java에서 json을 파싱/생성하기 위해 사용되는 구글의 오픈 소스 ( java object > json / json 문자열 > java object )
1) Gson 라이브러리 추가 (pom.xml_maven)
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.6</version>
</dependency>
2) Gson 객체 생성
// Json문자열로 변환할 java 객체 생성
Member member = new member("mem1", "1234");
// new 로 Gson 객체 생성
Gson gson1 = new Gson();
// GsonBuilder 로 Gson 객체 생성
Gson gson2 = new GsonBuilder().create();
Gson gson3 = new GsonBuilder().setPrettyPrinting().create();
** new GsonBuilder()로 Gson 객체를 만들면
setPrettyPrinting()와 같은 옵션을 추가해서 객체를 생성할 수 있음
// Member 객체 -> Json 문자열
String memebrJson = gson.toJson(member);
// Json 문자열 출력 (줄바꿈이 적용되어 가독성있게 출력됨)
System.out.println(memberJson);
{
"id": 1,
"name": "Anna"
}
3) Json 객체 생성
Gson gson = new Gson();
// Json key, value 추가
JsonObject jo = new JsonObject();
jo.addProperty("id", "mem1");
jo.addProperty("pw", "1234");
**jo라는 Json객체에 프로퍼티를 추가함
// JsonObject를 Json 문자열로 변환
String jsonStr = gson.toJson(jo);
// 생성된 Json 문자열 출력
System.out.println(jsonStr); // {"id":"mem1","pw":"1234"}
4) java 클래스 객체 > Json 변환
매개변수 있는 형태의 생성자로 객체 생성 > Gson객체 생성 > 클래스 객체를 json문자열로 변환
// member객체 생성
Member member = new member("mem1","1234");
// Gson객체 생성
Gson gson = new Gson();
// member 객체 -> Json 문자열 (Json 객체생성)
Member memberJson = gson.toJson(member);
// map -> Json 문자열도 동일한 방법이고 member 대신 map을 인자로 전달하면 됨
Member memberJson = gson.toJson(map);
// Json 문자열 출력
System.out.println(memberJson); // {"id":"mem1","pw":"1234"}
5) Json 문자열 > java 클래스 객체 변환
Json 문자열 변수에 담기 > Gson 객체 생성 > Json 문자열 java 객체로 변환 > java 객체 toString() 출력
// Json 문자열
String jsonStr = "{\"id\":\"mem1\",\"pw\":\"1234\"}";
// Gson 객체 생성
Gson gson = new Gson();
// Json 문자열 > Member 객체
Member meber = gson.fromJson(jsonStr, Member.class);
// Member 객체 toString() 출력
System.out.println(member); // Member [id=mem1, pw=1234]
6) Json 문자열 > Map 변환
Json 문자열 변수에 담기 > Gson 객체 생성 > Json 문자열 Map 으로 변환 > Map 출력
// Json 문자열
String jsonStr = "{\"id\":\"mem1\",\"pw\":\"1234\"}";
// Gson 객체 생성
Gson gson = new Gson();
// Json 문자열 > Map
Map<String, Object> map = gson.fromJson(jsonStr, Map.class);
// Map 출력
for(Map.Entry<String, Object> entry : map.entrySet()) {
System.out.println("@@");
System.out.println(entry);
System.out.println(entry.getKey());
System.out.println(entry.getValue());
System.out.println("1");
System.out.println(map);
System.out.println(map.entrySet());
System.out.println("2");
System.out.println(entry.getKey() + "=>" + entry.getValue());
System.out.println("3");
/*
@@
id=mem1
id
mem1
1
{id=mem1, pw=1234} // map형태
[id=mem1, pw=1234] // map.entrySet형태
2
id=>mem1 // entry.getKey()의 첫번째 key-value묶음
3
------------------------------------(key-value쌍만큼 반복)
@@
pw=1234
pw
1234
1
{id=mem1, pw=1234}
[id=mem1, pw=1234]
2
pw=>1234 // entry.getKey()의 두번째 key-value묶음
3
*/
*** map :: key를 value에 매핑하는 인터페이스 개체이며 key는 중복값을 가질 수 없음 / map 인터페이스는 Dictionary 클래스를 대체함. map의 순서는 map의 컬렉션 뷰에 있는 반복자가 요소를 반환하는 순서로 정의됨. (hashMap 순서 없음/ treeMap 순서 존재함)
참고 https://hianna.tistory.com/629
[Java] Gson 라이브러리 사용법 및 예제 ( Json 생성, 변환 )
이번에는 Gson 라이브러리로, Java에서 Json을 다루는 방법을 알아보도록 하겠습니다. Gson은 Gson 라이브러리 추가하기 Gson 객체 생성하기 Json 생성하기 Object -> Json 변환하기 Json -> Object 변환하기 Map..
hianna.tistory.com