07. Json 파싱(parsing)

    반응형

    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\""
                 + "}]}";

     

    반응형

    댓글