개발/JAVA

Gson을 사용한 JsonArray 형태의 String을 JsonArray로 변환하기

보리ing 2019. 11. 27. 18:26

[{A:a,B:b,C:,c},{A:a,B:b,C:,c},{A:a,B:b,C:,c},{A:a,B:b,C:,c}...] 형태로 저장된 파일을 읽어 다루는 일이 있었다.

jsonArray 데이터를 toString화 하여 저장한 듯한 이 데이터를 다시 jsonArray로 돌려놓기 위해서는

 

의존 설정

build.gradle dependencies에 

compile group: 'org.springframework.boot', name: 'spring-boot-starter-json', version: '2.1.9.RELEASE'	
//'org.springframework.boot:spring-boot-starter-web' 에 포함되어 있어 보통 생략 가능

implementation 'com.google.code.gson:gson:2.8.5'

를 추가

 

JSONArray ja = new JSONArray(stringData);

 

로 데이터를 생성하면 된다.

 

만약 위 데이터를 정의한 Data클래스가 있다면

List<Data> dataList = new ArrayList<> ();
try{
JSONArray ja = new JSONArray(stringData);
for (int i = 0; i < ja.length(); i++){
JSONObject order = ja.getJSONObject(i);
Gson gson = new Gson ( );
Data data = gson.fromJson(order.toString (),Data.class);

dataList.add (data);
}
} catch (JSONException e) {
e.printStackTrace ( );
}

 

 

와 같이 객체 리스트로 만들수도 있다.