File file = new File("./json_data/json.data");

if(file.exists()) {
System.out.println("is exists!!");
}else {
System.out.println("is not exists!!");
}

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

String line = null;

StringBuilder sb = new StringBuilder();

while((line = br.readLine()) != null) {
sb.append(line);
}

Gson gson = new Gson();



List<Person> personList = gson.fromJson(sb.toString(), new TypeToken<List<Person>>(){}.getType());

for(Person person : personList) {
System.out.println(person.name);
}

 

//Object to Json String

String json = gson.toJson(person);


File file = new File("./json_data/json.data");

if(file.exists()) {
System.out.println("is exists!!");
}else {
System.out.println("is not exists!!");
}

FileReader fr = new FileReader(file);

BufferedReader br = new BufferedReader(fr);

String line = null;

StringBuilder sb = new StringBuilder();

while((line = br.readLine()) != null) {
sb.append(line);
}

Gson gson = new Gson();



List<Person> personList = gson.fromJson(sb.toString(), new TypeToken<List<Person>>(){}.getType());

for(Person person : personList) {
System.out.println(person.name);
}

 

GSON을 이용하여 JSONObject를 마샬링 하는 것은 직접 클래스를 지정하여 주면 되지만 List로 반환을 받아야 하는 JsonArray일 경우 TypeToken을 이용하여야 한다.

Gson gson = new Gson();

gson.fromJson( [JsonArray].toString() , new TypeToken<ArrayList<[Casting 할 객체]>>(){}.getType() );

참고로 일반적인 객체로의 변환은

Gson gson = new Gson();

gson.fromJson( [JsonElement or Json.toString()] , [변환하고 싶은 객체].class);

+ Recent posts