java
[java] JSON 라이브러리
yhansol
2022. 12. 28. 14:50
728x90
반응형
자바에는 org.json 라이브러리를 이용하여 JSON 데이터를 다룰 수 있다.
org.json 라이브러리에서 제공하는 JSONObject, JSONArray 클래스는 JSON데이터를 가지고 있고 JSON형식의 문자열로 출력이 가능하다.
JSON
JSON은 JavaScript Object Notation 의 약자로 자바스크립트에서 데이터를 전달하기 위해 만들어졌다.
JSON 파일의 특징으로는 다음과 같이 key-value 형태로 데이터를 가진다.
{
"name" : "james",
"info" : {
"age" : 28,
"from" : "USA",
"job" : "student"
}
}
JSONObject
JSONObject 는 JSON에서 key-value 데이터를 쌍으로 표현하는 객체다.
JSONObject 에 데이터를 입력할때는 put(key, value) 형태로 입력한다.
toString() 은 JSONObejct가 가지고 있는 데이터를 JSON 형식으로 출력할때 사용한다.
import org.json.JSONException;
import org.json.JSONObject;
public class testJson {
public static void main(String[] args) throws JSONException {
JSONObject jsonObject = new JSONObject();
jsonObject.put("name", "james");
jsonObject.put("city", "Seoul");
System.out.println(jo.toString());
}
}
위 코드를 실행하면
{"name" : "james", "city" : "Seoul"}
JSONArray
JSON은 key-value 형태로 데이터를 가진다. value는 아래처럼 Array 타입이 될 수도 있다.
"info" : ["age" : 28, "from" : "USA", "job" : "student"]
JSONArray 는 '[' 로 시작하고 ']' 로 끝내어 표현한다.
'[]' 안에는 JSONObject, String 값 등을 담을 수 있다.
LIST, MAP 형태 데이터를 JSON으로 변환하기
/**
* map을 JSON형태로 변환
*
*/
public static JSONArray convertMapToJsonArray(HashMap<String, String> map) {
JSONArray jsonArray = new JSONArray();
for (Map.Entry<String, String> entry : map.entryMap()) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("key", entry.getKey());
jsonObject.put("value", entry.getValue());
jsonArray.add(jsonObject);
}
return jsonArray;
}
/**
* list<map>을 JSON형태로 변환
*
*/
public static JSONArray convertListToJson(List<HashMap<String, Object>> list) {
JSONArray jsonArray = new JSONArray();
for (Map<String, Object> map : list) {
jsonArray.add(convertMapToJson(map));
}
return jsonArray;
}