반응형

JSON 파싱에 대한 포스팅

 

우선 GSON이라는 dependency를 maven에 추가한다.

<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.8.5</version>
</dependency>

 

 

 

 

 

{"result":

 

{"account_data":

 

{"Account":"rNTkgxs5WG5mU5Sz26YoDVrHim5Y5ohC7",

"Balance":"20999000",

"Flags":1048576,

"LedgerEntryType":"AccountRoot",

"OwnerCount":0,

"PreviousTxnID":"43AB8056587462983030ED668EB5AA4245D90F7FC92514C0D87129FEBEF4FA80",

"PreviousTxnLgrSeq":47883205,

"RegularKey":"rfn2qMt4mBvvtJmWAJLmBrZN5z1fhCEkBg",

"Sequence":69736,

"index":"D11F09F2ED30B139D751C32D77EB3135905AEB4F9EC68EC55162F84D479E51B3"},

 

"ledger_hash":"FA31555279BBC949B4D92EFB80CD243C3CAD4E5F0B862742CEC631BBF49AA4EB",

"ledger_index":47883215,

"status":"success",

"validated":true}}

 

위와 같은 데이터가 있다.

 

나는 Balance 정보 20999000를 불러오려고 할 때, Json parsing을 이용한다.

 

위의 데이터가 response1에 저장되어 있다고 가정한다.

 

		JsonParser jsonParser= new JsonParser(); //JsonParser를 불러온다.
		
		
		JsonObject jsonObj= (JsonObject) jsonParser.parse(response1); //reponse1을 오브젝트 형식으로 파싱함
		
		JsonElement jsonElem = jsonObj.get("result");
        //우리가 원하는 데이터는 result: 뒤에 있는 부분이므로 JsonElement로 result 부분을 가져와준다.

		
		System.out.println("Balance: "+jsonElem.getAsJsonObject().get("account_data").getAsJsonObject().get("Balance"));
		System.out.println("원장번호: "+jsonElem.getAsJsonObject().get("ledger_index"));
    	//getAsJsonObject().get("인덱스명")을 통해서 값을 가져올 수 있다.
    

 

예제로 쓸 데이터가 없다면 이런 형식으로 저장

     String jsonStr = "{\"members\":["
             + "{\"name\":\"홍길동\","
             + "\"email\":\"gildong@hong.com\","
             + "\"age\":\"25\""
             + "},"
             + "{\"name\":\"홍길서\","
             + "\"email\":\"gilseo@hong.com\","
             + "\"age\":\"23\""
             + "}]}";

 

반응형

+ Recent posts