2016-07-21 1 views
0

저는 jackson에 익숙하지 않습니다. 샘플 json 출력을 사용하여이 데이터를 응답으로 얻으려면 jackson을 사용해야합니다.이 문제는 json에서 간단하게 얻을 수있는 문제를 알고 있으므로 pojo 클래스를 만들었지 만 나는이 usong jackson을 할 생각이 없다. 제발 좀 도와 줄래.jackson을 사용하여 json 응답을 얻는 방법은 무엇입니까?

이 내 샘플 JSON 데이터입니다 -

{ 
"apmmetrics": [ 
    { 
     "metric": "Somevalue", 
     "level": "somevalue", 
     "data": [ 
      { 
       "host": "someValue", 
       "instance": "someValue", 
       "app": "someValue", 
       "series": [ 
        { 
         "bucket": "201607210949", 
         "max": 300, 
         "min": 15, 
         "avg": 57.55, 
         "total": 1899, 
         "count": 33 
        }, 
        { 
         "bucket": "201607210948", 
         "max": 437, 
         "min": 13, 
         "avg": 93.5, 
         "total": 13464, 
         "count": 144 
        }, 
        { 
         "bucket": "201607210947", 
         "max": 431, 
         "min": 13, 
         "avg": 86.25, 
         "total": 28376, 
         "count": 329 
        } 
       ] 
      } 
     ] 
    } 
]} 

이 내 POJO 날 내가 이것을 달성 할 수있는 방법을 알려 주시기 바랍니다

public class MetricsCollection { 

private String metric; 
private String level; 
private List<MetricsGroup> data; 
private transient Map<String, MetricsGroup> meta; 

} 

public class MetricsGroup { 

private String host; 
private String instance; 
private String app; 
private List<GenericMetrics> series; 
private transient Map<String, GenericMetrics> metaMap; 
} 


public class BaseMetrics implements Serializable { 
private static final long serialVersionUID = -3249688349785265214L; 
protected double max = 0.0; 
protected double min = 0.0; 
protected double avg = 0.0; 
protected double total = 0.0; 
protected long count = 0; 
} 


public class GenericMetrics extends BaseMetrics { 

private static final long serialVersionUID = -9057601499394607167L; 
private String bucket; 
private transient long rc = 0; 

} 

을 classes-- 있습니다. 정말로 감사 할 것입니다. 미리 감사드립니다.

+0

보십시오 당신이 POJO를로 JSON을 구문 분석 싶은데, 귀하의 질문에 명확하게하려면? 그렇다면 다음과 같이 할 수 있습니다. new ObjectMapper(). readValue (jsonAsString, Pojo.class); – fdam

+0

코드를 위의 샘플 json으로 내 데이터를 클래스에 구문 분석하여 표시해야합니다. –

답변

1

apmmetrics이라는 속성 배열을 가진 다른 클래스 (rootPojo)를 MetricsCollection으로 만들어야합니다. 그런 다음 JSON을 생성합니다 mapper.writeValueAsString(rootPojo);

편집 :

또는 단지 :

final ObjectMapper mapper = new ObjectMapper(); 
final Map<String, List<MetricsCollection>> dataMap = ... 
dataMap.put("apmmetrics", listOfMetricsCollection); 
System.out.println(mapper.writeValueAsString(dataMap)); 
+0

'apmmetrics'는 반드시 타입이'MetricsCollection []'이어야합니다 - JSON 파일에 배열 괄호가 있습니다. – Robert

+0

네, 그렇습니다. – fdam

+1

당신은 'MetricsCollection' 타입이어야한다고 썼지 만, 올바른 것은'MetricsCollection []'입니다. – Robert