JAVA
2017.12.21 15:14

java JSON Parsing 예제들

조회 수 18036 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print
?

단축키

Prev이전 문서

Next다음 문서

+ - Up Down Comment Print


//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의 코드 스크랩

내가 모으고 내가 보는

List of Articles
번호 분류 제목 날짜 조회 수 추천 수
86 개념 스트리밍 개요 Streaming overview 2012.11.26 14115 0
85 MFC 시스템 출력 리디렉션 - 도스 커맨드 결과 받아오기 file 2007.08.14 53195 0
84 일반 시스템 환경변수 세팅 2011.02.08 28528 0
83 MFC 시작프로그램 레지스트리에 등록/해제 함수 2006.04.14 45995 0
82 Pi 시프트 레지스터 사용방법 (Shift Register, 74HC595, 74HC165) 2016.11.21 31801 0
81 Android 실시간으로 폰의 pcap 보기 2016.01.05 7473 0
80 Pi 아두이노 (Arduino) 소개 및 유형별 종류, 제품별 특징 2016.11.15 7247 0
79 Pi 아두이노 (Arduino)로 서보모터 (SG90) 제어 2017.07.11 11181 0
78 Pi 아두이노 Arduino String Class 2017.07.16 10521 0
77 Pi 아두이노 데이터 저장하기(Arduino EEPROM 사용하기) 2019.12.24 18103 0
76 Pi 아두이노 레오나르도 보드 기본 사용법 2016.11.22 11964 0
75 Pi 아두이노에 도움이 되는 전자부품들 2018.06.20 5892 0
74 Pi 아두이노의 인터럽트 (interrupt) 사용 2017.04.13 14662 0
73 일반 아마존 '알렉사 Alexa' 명령어 모음 2017.08.04 24344 0
72 일반 아스키 코드표 file 2006.01.04 43715 0
목록
Board Pagination ‹ Prev 1 ... 24 25 26 27 28 29 30 31 32 33 34 Next ›
/ 34

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소

Designed by sketchbooks.co.kr / sketchbook5 board skin

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5

Sketchbook5, 스케치북5