댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
JAVA
2017.12.21 15:14
java JSON Parsing 예제들
조회 수 19932 댓글 0
//JSON Parsing try { JSONParser jsonParser = new JSONParser(); JSONObject jsonObject = (JSONObject)jsonParser.parse(strJson); if (true == jsonObject.containsKey(ZigBeeServiceConstants.STR_DEVICEID)) { deviceId = jsonObject.get(ZigBeeServiceConstants.STR_DEVICEID).toString(); if (!"".equals(deviceId)) { thingUIDFromSID = getZigbeeThingUIDFromSIDWithinThingRegistry(jsonObject, ZigBeeServiceConstants.STR_DEVICEID); if ((thingUIDFromSID != null) && (!"".equals(thingUIDFromSID))) { deviceId = thingUIDFromSID; } else { result = false; } } } else { result = false; } jsonObject.clear(); } catch (Exception e) { result = false; logger.debug("[getZigBeeDeviceLists()] result is false, exception:{}", e.toString()); } if (false == result) { return ZigBeeServiceConstants.JSON_RESULT_ERROR_PARAMETER_INVALID_VALUE; } import org.json.simple.JSONArray; import org.json.simple.JSONObject; public class JSON { public static void main(String[] args) { System.out.println("----------------------------------------------------------"); System.out.println("JSON String 생성"); JSONObject jsonObject = new JSONObject(); jsonObject.put("name", "유혁"); // "name":"유혁" JSONArray jsonArray = new JSONArray(); JSONObject school = new JSONObject(); school.put("subject1", "math"); school.put("subject2", "korean"); jsonArray.add(school); // "school":[{"subject1":"math","subject2":"korean"}] jsonObject.put("school", jsonArray); System.out.println(jsonObject.toString()); System.out.println("----------------------------------------------------------"); System.out.println("JSON String 파싱"); try{ JSONArray returnSchool = (JSONArray)jsonObject.get("school"); for(int i=0;i<returnSchool.size();i++){ JSONObject returnSubject = (JSONObject) returnSchool.get(i); System.out.println("subject : "+returnSubject.get("subject1")); System.out.println("subject : "+returnSubject.get("subject2")); } String name = (String)jsonObject.get("name"); System.out.println("name : " + name ); }catch(Exception e){ e.printStackTrace(); } System.out.println("----------------------------------------------------------"); } } JSONObject는 JSON형태의 데이터를 관리해 주는 메서드이다. 주의점은 맵의 특성으로 인해 순서를 보장하지 않는다는것. 즉 똑같이 뽑아내도 내용물의 순서가 섞일 수 있다. 간단한 사용법은 다음과 같다. 먼저 제이슨 생성 후 데이터 집어넣기 JSONObject obj = new JSONObject(); obj.put("이름","덩치"); obj.put("거주지","서울"); 출력해보면 String data = obj.toString(); System.out.println(data); 결과값 - {"이름":"덩치","거주지":"서울"} 이렇게 표시된다. 키값에 해당하는 벨류만 뽑고싶다면 String data = obj.get("key"); 하면 "key"에 해당하는 벨류를 반환한다. JSON형태의 String을 JSONobject에 넣는법은 String data = {"이름":"덩치","거주지":"서울"}; (실제로는 자바에서는 "를 못읽기때문에 String data = "{\"이름\":\"덩치\",\"거주지\":\"서울\"}"; 이런식으로 해줘야 될것임) JSONObject obj = new JSONObject(data); 쓸때는 위와 같이 뽑아서 사용하면 된다. JSONArray 는 JSONObject가 들어가는 배열이라고 보면 된다. 예제를 먼저 보자 - 예제출처 : (http://aroundck.tistory.com/215) String Json = "[{\"Product\" : \"Mouse\", \"Maker\":\"Samsung\", \"Price\":23000}," + "{\"Product\" : \"KeyBoard\", \"Maker\":\"LG\", \"Price\":12000}," + "{\"Product\":\"HDD\", \"Maker\":\"Western Digital\", \"Price\":156000}]"; try{ String result = ""; JSONArray ja = new JSONArray(Json); for (int i = 0; i < ja.length(); i++){ JSONObject order = ja.getJSONObject(i); result += "product: " + order.getString("Product") + ", maker: " + order.getString("Maker") + ", price: " + order.getInt("Price") + "\n"; } } catch (JSONException e){ ;} 결과값 : result : product: Mouse, maker: Samsung, price: 23000 product: KeyBoard, maker: LG, price: 12000 product: HDD, maker: Western Digital, price: 156000 이렇게 만들어진 JSONArray 객체를 JSONObject에 넣을 수 있으며 위와같은 방식으로 제이슨오브젝트에 그냥 오브젝트와 어레이를 모두 넣어가며 작업할 수 있다. Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5