개발환경 : egov3.9

 이디러리움 샘플을 가지고 왔다.

nodejs는 자바스크립트 기반이니   json파싱은 일도 아닌데 ㅎㅎㅎ

스프링에서는 경험이 적다보니 시간이 좀 걸렸다

 

공유겸 정리해 놓을려구 한다.

 

해당 트렌젝션의 result값을 VO에 집어 넣고

출력하는 부분을 만들 예정이다.

 

 

ethscan.json 이더리움 송금 트랜젝션

 {
 "status":"1",
 "message":"OK",
 "result":[
  {
   "blockNumber":"4473164",
   "timeStamp":"1542787987",
   "hash":"0xac86d44f53a22e4b12853f5f8234f95b831e1521694c4072fd6a97b219ec3cb7",
   "nonce":"17012682",
   "data": {
    "blockHash":"0x4ee9b9d29f78f7aab230613f8827e9e070d5b60b2cd06d61e83b17aaaa5b1e67",
    "transactionIndex":"54",
    "from":"0x81b7e08f65bdf5648606c89998a9cc8164397647",
    "to":"0xff0797d06e8f9897b1d5066c10d9497ed7054a47"
   },
   "Price": [
    {
     "value":"1000000000000000000",
     "gas":"21000",
     "gasPrice":"1000000000"
    },
    {
     "value":"1000000000000000000",
     "gas":"21000",
     "gasPrice":"1000000000"
    },
    {
     "value":"1000000000000000000",
     "gas":"21000",
     "gasPrice":"1000000000"
    }
   ]
  }
 ]
}

 

 

Json 파싱은 이상한거 쓰지말고 org.json.simple 쓰는게 가장 좋다

pom.xml에 추가 하고

<dependency>
            <groupId>com.googlecode.json-simple</groupId>
            <artifactId>json-simple</artifactId>
            <version>1.1.1</version>
 </dependency>

 

 

 

VO

package egovframework.example.sample.service;

import java.util.List;

import lombok.Getter;
import lombok.Setter;
import lombok.ToString;


@Getter
@Setter
@ToString
public class LombokVO {
 


    private String blockNumber;
    private String timeStamp;
    private String hash;
    private String nonce;
    private String blockHash;
    private String transactionIndex;
    private String from;
    private String to;

   
    public Data data;
    class Data{
     private String blockHash;
     private String transactionIndex;
     private String from;
     private String to;
    }
    
    
    public List<Price> Price;
    
    class Price{
     private String value;
     private String gas;
     private String gasPrice;
    }  
}


 

 

 

컨트롤러

package egovframework.example.sample.web;

import java.io.FileReader;
import java.util.List;

import egovframework.example.sample.service.EgovSampleService;
import egovframework.example.sample.service.LombokVO;
import egovframework.example.sample.service.SampleDefaultVO;
import egovframework.example.sample.service.SampleVO;

import egovframework.rte.fdl.property.EgovPropertyService;
import egovframework.rte.ptl.mvc.tags.ui.pagination.PaginationInfo;

import javax.annotation.Resource;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.ui.ModelMap;
import org.springframework.validation.BindingResult;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.support.SessionStatus;
import org.springmodules.validation.commons.DefaultBeanValidator;
import org.json.simple.JSONArray;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.json.simple.parser.ParseException;


@Controller
public class EgovSampleController {
 
 
 @RequestMapping(value = "/jsonList.do")
 public String jsonList(SampleVO sampleVO) throws Exception { 
 Object jsonVO = new LombokVO();
 
   
    JSONParser jsonParser = new JSONParser();
    JSONObject jsonObject = (JSONObject) jsonParser.parse(new FileReader("C:\\work-space\\json-test\\jsonsample\\ethscan.json"));

 
    jsonVO =jsonObject.get("result");
   
   
   
 //System.out.println("");
 System.out.println("jsonList : " + jsonVO);
 
 return null;  
 } 

}

 

배열 형식일때는 Array로 VO클래스를 만들고

Object 형식일때는 List로 VO로 만들면 된다.

 

그 뒤로는 알아서 잘 밖힌다.

접근 할때는 일반 클래스 처럼 . 사용하여 접근하면 된다. 

 

 

'자바(Spring)' 카테고리의 다른 글

AsyncRestTemplate Spring boot 비동기  (0) 2021.02.09
ajax 통신  (0) 2020.09.06
블로그 이미지

iesay

,