WonYong-Jang / Spring-Jquery-Project

0 stars 0 forks source link

[JSONObject / JSONArray] / [GSON / Jackson ] / JsonUtil #5

Open WonYong-Jang opened 5 years ago

WonYong-Jang commented 5 years ago

JSON

<dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.0</version>
</dependency>

JSONObject

JSONObject 구조

예시 ( gson 라이브러리 이용 )


JsonObject object = new JsonObject(); // JsonObject 생성
object.addProperty("name", "jang"); // 추가
object.addProperty("age", "29");
object.addProperty("success", true);
String json = object.toString();  // JSONObject 를 String 에 담기
System.out.println(json);

- 결과값 :{"name":"jang","age":"29","success":true}

JSONArray

JSONArray 구조

예시

List<HashMap<String, Object>> hashMapList = testDAO.getTest(list); // hashmap 형태로 데이터를 가져온다 JSONArray jsonArrayList = new JSONArray(); // JSONArray 생성

for(int j=0; j< hashMapList.size(); j++) { // 가져온 hash 데이터 갯수만큼 JSONObject obj = JSONObject.fromObject(hashMapList.get(j)); jsonArrayList.add(obj); }

GSON / Jackson

GSON

Jackson

WonYong-Jang commented 5 years ago

Json 형식 파싱

JsonParser ( key 값이 없는 경우 )

String str = "[{'name':'wonyong', 'age':'5'}, {'name':'jang', 'age':'3'}, {'name':'kim', 'age':'2'}]"; // json 문자
JsonParser jsonParser = new JsonParser();

JsonArray jsonArray = (JsonArray) jsonParser.parse(str); // Array를 나누는 key 가 없으므로 배열에 한번에 파싱 [ ] 로 시작하고 끝나는 경우

for(int i=0; i< jsonArray.size(); i++)
{
            JsonObject object = (JsonObject) jsonArray.get(i);
            String name = object.get("name").getAsString();
            String age = object.get("age").getAsString();

            System.out.println(name);
            System.out.println(age);
            System.out.println();
}

결과 값

wonyong
5

jang
3

kim
2

JsonParser ( key 값이 있는 경우 )

 String str = "{'one' : [{'name': 'wonyong1', 'age':'51'}, {'name': 'jang1', 'age':'31'}, {'name':'kim1', 'age':'21'}], 'two' : [{'name':'wonyong', 'age':'5'}, {'name':'jang', 'age':'3'}, {'name':'kim', 'age':'2'}] }"; // json 문자
JsonParser jsonParser = new JsonParser();

JsonObject object = (JsonObject) jsonParser.parse(str); // { } 로 시작하고 끝나는 경우 객체로 우선 파싱후 key 값으로 다시 파싱!!
JsonArray array = (JsonArray) object.get("one");

for(int i=0; i< array.size(); i++)
{
            JsonObject obj = (JsonObject) array.get(i);
            System.out.println(obj.get("name"));
            System.out.println(obj.get("age"));
            System.out.println();
}
WonYong-Jang commented 5 years ago

JSON.stringify(value,replacer,space)

function replacer(key, value) { if(typeof value == "string") { return undefined; } return value; }

var data = {name : "wonyong", age: 29}; var result = JSON.stringify(data, replacer); // replacer 함수를 통해서 string type 만 json 데이터를 처리