Spring

Jira API를 위해 Spring Java에서 JSON List을 처리하는 방법

기록만이살길 2021. 3. 15. 07:05
반응형

Jira API를 위해 Spring Java에서 JSON List을 처리하는 방법

1. 질문(문제점):

jira 보드에서 몇 가지 문제 List을 얻으려고합니다. 저는 Spring 웹 사이트에서 튜토리얼 프로젝트를 확장하려고합니다. 지금까지는 정상적인 개체이므로 단일 문제에서 ID와 키를 얻을 수 있습니다. 그러나 나는 모든 현재 문제의 List을 얻는 데 실패하고 있습니다.



{ 
  expand:   "schema,names"
  startAt:  0
  maxResults:   50
  total:    250
  issues:   [
        {
         expand:    "operations,versionedRepr…hangelog,renderedFields"
         id:    "36384"
         key:   "PE-1327"
         fields:    {…}
       },
        {
         expand:    "operations,versionedRepr…hangelog,renderedFields"
         id:    "32853"
         key:   "PE-775"
         fields:    {…}
       },
        {
         expand:    "operations,versionedRepr…hangelog,renderedFields"
         id:    "32855"
         key:   "PE-777"
         fields:    {…}
        }
   ]
}

내 메인 클래스의 스 니펫 :

    @Bean
    public RestTemplate restTemplate(RestTemplateBuilder builder) {
        return builder.basicAuthentication(auth,auth2).build();
    }

    @Bean
    public CommandLineRunner run(RestTemplate restTemplate) throws Exception {
        return args -> {
            ValueList response = restTemplate.getForObject(
                    "https://jiraURL/rest/agile/1.0/board/67/issue",
                    ValueList.class);
            List<Value> valueData = response.getValueList();

            log.info(valueData.toString());
        };
    }

"문제"내부 데이터에 대한 My Value Pojo

@JsonIgnoreProperties(ignoreUnknown = true)
public class Value {

    private Long id;
    private String key;

    public Value() {
    }

    public Long getId() {
        return this.id;
    }

    public String getKey() {
        return this.key;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public void setKey(String quote) {
        this.key = quote;
    }

    @Override
    public String toString() {
        return "issues{" +
                "id=" + id +
                ", key='" + key + '\'' +
                '}';
    }
}

내 ValueList 클래스

public class ValueList {


    private List<Value> valueList;
    //getter and setter

내가 얻는 출력은

[]

2. 해결방안:

해결책을 찾았습니다!

ValueList Pojo 클래스에 Json 어노테이션을 추가하는 것을 잊었습니다. 내 ValueList pojo는 이제 다음과 같습니다.

@JsonIgnoreProperties(ignoreUnknown = true)
public class ValueList {

    @JsonProperty("issues") 
    private List<Value> valueList;

    public ValueList(List<Value> valueList) {
        this.valueList = valueList;
    }

    public List<Value> getValueList() {
        return valueList;
    }

    public void setValueList(List<Value> valueList) {
        this.valueList = valueList;
    }

    public ValueList(){
        valueList = new ArrayList<>();
    }
}

이제 내 출력입니다. [issues {id = 36384, key = 'PE-1327'}, issues {id = 32853, key = 'PE-775'}, issues {id = 32855, key = 'PE-777' }, 문제 {id = 37475, key = 'PE-1568'}, 문제 {id = 37277, key = 'PE-1528'}, ...

65689322
반응형