Notice
Recent Posts
Recent Comments
Link
투케이2K
280. (AndroidStudio/android/java) GSON 사용해 VO 클래스 객체 매핑 및 JSON 생성 , 파싱 수행 실시 본문
Android
280. (AndroidStudio/android/java) GSON 사용해 VO 클래스 객체 매핑 및 JSON 생성 , 파싱 수행 실시
투케이2K 2022. 3. 18. 16:13[개발 환경 설정]
개발 툴 : AndroidStudio
개발 언어 : java
[Test : 소스 코드]
package com.example.testapp;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
public class Test {
public static void main(String[] args){
System.out.println("[Program Start]");
System.out.println("");
// ===================================
// TODO [설치 필요한 의존성 패키지]
// implementation 'com.google.code.gson:gson:2.8.6'
// ===================================
// TODO [GSON 사용해 VO 객체를 JSON 으로 변환 실시]
// [List Map 객체 선언 및 데이터 삽입]
ArrayList<Map<String, Object>> listMap = new ArrayList<Map<String, Object>>();
for(int i=1; i<=3; i++) {
// [Map 객체 생성 및 데이터 생성]
Map<String, Object> map = new HashMap<String, Object>();
map.put(String.valueOf(i + "_key"), i + "_value");
// [List Map 에 배열에 데이터 삽입 실시]
listMap.add(map);
}
// [VO 객체 생성 실시]
UserVO Create_UserVO = new UserVO("투케이", 29, listMap);
// [GSON 객체 선언 실시]
Gson create_gson = new Gson(); // [일반 GSON 생성]
//Gson create_gson = new GsonBuilder().setPrettyPrinting().create(); // [PrettyPrinting 옵션을 추가 데이터 이쁘게 출력]
// [GSON 사용해 json 형식 데이터 생성 실시]
String jsonString = create_gson.toJson(Create_UserVO);
// [JSON 생성 결과 출력 실시]
System.out.println("[JSON 생성] jsonString : " + jsonString);
System.out.println("");
// ===================================
// TODO [GSON 사용해 JSON 데이터를 VO 객체에 매핑 수행 실시]
String sampleJson = "{\n" +
" \"name\": \"TWOK\",\n" +
" \"age\": 29,\n" +
" \"listMap\": [\n" +
" {\n" +
" \"1_test_key\": \"1_test_value\"\n" +
" },\n" +
" {\n" +
" \"2_test_key\": \"2_test_value\"\n" +
" },\n" +
" {\n" +
" \"3_test_key\": \"3_test_value\"\n" +
" }\n" +
" ]\n" +
"}";
// [GSON 객체 선언 실시]
Gson parsing_gson = new Gson(); // [일반 GSON 생성]
//Gson parsing_gson = new GsonBuilder().setPrettyPrinting().create(); // [PrettyPrinting 옵션을 추가 데이터 이쁘게 출력]
// [JSON 데이터를 VO 객체에 매핑 실시]
UserVO Parsing_UserVO = parsing_gson.fromJson(sampleJson, UserVO.class);
// [UserVO 객체 전체 데이터 출력 실시]
System.out.println("[JSON 파싱] Parsing_UserVO : " + Parsing_UserVO);
System.out.println("");
// [UserVO 객체 개별 데이터 확인 실시]
System.out.println("[JSON 파싱] getName : " + Parsing_UserVO.getName());
System.out.println("");
// [UserVO 객체 개별 데이터 확인 실시]
System.out.println("[JSON 파싱] getAge : " + Parsing_UserVO.getAge());
System.out.println("");
// [UserVO 객체 개별 데이터 확인 실시]
System.out.println("[JSON 파싱] getListMap : " + Parsing_UserVO.getListMap());
System.out.println("");
// ===================================
} // [메인 종료]
} // [클래스 종료]
[UserVO : 소스 코드]
package com.example.testapp;
import java.util.ArrayList;
import java.util.Map;
public class UserVO {
// TODO [전역 변수 선언 실시]
private String name;
private int age;
private ArrayList<Map<String, Object>> listMap;
// TODO [클래스 생성자 초기화 실시]
public UserVO(String name, int age, ArrayList<Map<String, Object>> listMap){
// 전역 변수에 매핑 실시
this.name = name;
this.age = age;
this.listMap = listMap;
}
// TODO [개별 데이터를 확인 하기 위해 get 생성]
public String getName(){
return name;
}
// TODO [개별 데이터를 확인 하기 위해 get 생성]
public int getAge(){
return age;
}
// TODO [개별 데이터를 확인 하기 위해 get 생성]
public ArrayList<Map<String, Object>> getListMap(){
return listMap;
}
// TODO [toString() 메소드 재정의 수행 실시 : 클래스 데이터 확인 용도]
@Override
public String toString(){
return "UserVO ["
+ "name=" + name + ", "
+ "age=" + age + ", "
+ "listMap=" + listMap.toString()
+ "]";
}
} // [클래스 종료]
[결과 출력]
반응형
'Android' 카테고리의 다른 글
Comments