본문 바로가기
슬기로운 자바 개발자 생활/Java more

gson 사용

by 슬기로운 동네 형 2017. 8. 2.
반응형

회사에서 메이븐이 안되는 관계로 jar 파일 다운로드

 

 

Users class 작성

package gsjon;

/**
* Created by sungbo on 2017-08-02.
*/
public class Users {

private String userName;
private String age;
private String emNum;

public Users(String userName, String age, String emNum) {
this.userName = userName;
this.age = age;
this.emNum = emNum;
}

public String getUserName() {
return userName;
}

public void setUserName(String userName) {
this.userName = userName;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getEmNum() {
return emNum;
}

public void setEmNum(String emNum) {
this.emNum = emNum;
}

@Override
public String toString() {
return "Users{" +
"userName='" + userName + '\'' +
", age='" + age + '\'' +
", emNum='" + emNum + '\'' +
'}';
}

}

 

json 컨버트 해보기

package gsjon;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;
import org.apache.log4j.Logger;

import java.util.ArrayList;
import java.util.List;

/**
* Created by sungbo on 2017-08-02.
*/
public class GsonChange {

static Logger logger = Logger.getLogger(GsonChange.class);

public static void main(String[] args){

Users users = new Users("mingki","34","001");

String json = new Gson().toJson(users);

logger.info("1.단일 클래스를 변환 ToJson");
logger.info(json.toString());



List<Users> userLists = new ArrayList<Users>();

for(int i=0; i < 10 ;i++){

char str = (char) (65 + i);

Users u = new Users("P"+str,String.valueOf(i),"000"+i);
userLists.add(u);
}

String gjsonStr = new Gson().toJson(userLists);
logger.info("2.리스트를 json 형태로 변환");
logger.info(gjsonStr.toString());

logger.info("3. json을 클래스 객체로 변환 Json => Object ");
Users changeToObject = new Gson().fromJson(json,Users.class);

logger.info("새로 생성한 객체에 담은 값 : "+changeToObject.toString());

//json 리스트를 다시 객체로 gjsonStr은 리스트 to json으로 해놓은 값이다.
        Gson gson = new Gson();
List<Users> toListo = gson.fromJson(gjsonStr,new TypeToken<List<Users>>(){}.getType());

logger.info("============= 1.json to Object List =============");
for(Users t : toListo){
logger.info(t.toString());
}

        Users[] usersArray = gson.fromJson(gjsonStr, Users[].class);
logger.info("============= 2.json to Object List =============");
for(Users t : usersArray){
logger.info(t.toString());
}
}

}

1. json 데이터를 리스트로 받기

String gjsonStr <== 여기에는

Users{userName='PA', age='0', emNum='0000'}
Users{userName='PB', age='1', emNum='0001'}
Users{userName='PC', age='2', emNum='0002'}
Users{userName='PD', age='3', emNum='0003'}
Users{userName='PE', age='4', emNum='0004'}
Users{userName='PF', age='5', emNum='0005'}
Users{userName='PG', age='6', emNum='0006'}
Users{userName='PH', age='7', emNum='0007'}
Users{userName='PI', age='8', emNum='0008'}
Users{userName='PJ', age='9', emNum='0009'}

 

List<Users> toListo = gson.fromJson(gjsonStr,new TypeToken<List<Users>>(){}.getType());

2. 두번째 방법

배열을 이용해서 컨버팅.... 예전에 안드로이드에서 서버와 통신 할때... 아래처럼 했었지....

이제 눈에 확 들어온다... ㅠㅠ

Users[] usersArray = gson.fromJson(gjsonStr, Users[].class);

 

반응형

댓글