2016-12-07 5 views
0

에서 totalAmount와 같은 메소드의 반환 값을 출력하면 클래스의 값이 아니라 메소드의 Entity ShoppingCart의 반환 값 totalAmount를 출력 할 수 있습니까? 그래서 예를 들어 아이템 목록이있는 클래스 쇼핑 카트가 있습니다. 메소드 totalAmount. Spring Rest Entity

{ 
"creationDate": "2016-12-07T09:45:38.000+0000", 
    "items": [ 
    { 
     "itemName": "Nintendo 2DS", 
     "description": "Konsole from Nintendo", 
     "price": 300.5, 
     "quantity": 3 
    }, 
    { 
     "itemName": "Nintendo Classic", 
     "description": "Classic nintendo Console from the 80th...", 
     "price": 75, 
     "quantity": 2 
    } 
    ], 
    "totalAmount": "1051,50", 
    "_links": { 
    "self": { 
     "href": "http://localhost:8082/carts/2" 
    }, 
    "cart": { 
     "href": "http://localhost:8082/carts/2" 
    }, 
    "checkout": { 
     "href": "http://localhost:8083/order" 
    } 
    } 
} 

는 현재 API 요청의 응답은 다음과 같습니다

:

{ 
    "creationDate": "2016-12-07T09:45:38.000+0000", 
    "items": [ 
    { 
     "itemName": "Nintendo 2DS", 
     "description": "Konsole from Nintendo", 
     "price": 300.5, 
     "quantity": 3 
    }, 
    { 
     "itemName": "Nintendo Classic", 
     "description": "Classic nintendo Console from the 80th...", 
     "price": 75, 
     "quantity": 2 
    } 
    ], 
    "_links": { 
    "self": { 
     "href": "http://localhost:8082/carts/2" 
    }, 
    "cart": { 
     "href": "http://localhost:8082/carts/2" 
    }, 
    "checkout": { 
     "href": "http://localhost:8083/order" 
    } 
    } 
} 

인가 나는 URL http://localhost:8082/carts/1와 API에 요청을 할 때 지금은 다음과 같은 응답을 얻으려면 이 일이나 다른 일을하는 주석이 있습니다. 나는 그것을 CartResourceProcessor (org.springframework.hateoas.ResourceProcessor)에 추가하려고 시도했지만 추가 링크를 추가 할 수있는 가능성 만있다. 또는 클래스 값 totalAmount를 추가해야합니까?

답변

0

예 잭슨 @JsonProperty 주석

코드 샘플

@JsonProperty("totalAmount") 
public double computeTotalAmount() 
{ 
    // compute totalAmout and return it 
} 
+0

예 @JsonProperty ("totalAmount")는 작업 벌금을 할 수 있습니다. 고맙습니다. – Rocks360

0

와 방법을 주석으로 그것을 달성 할 수 그리고 당신이 이것을 읽은 후에 얻을 수 다음 질문에 대답 할 수 있습니다. totalAmount가 계산되는 방법. 이와 유사한 여기에 조각

public Class Cart{ 
    // some Class values 

    @JsonProperty("totalAmount") 
    public BigDecimal total(){ 

     return items.stream() 
       .map(Item::total) 
       .reduce(BigDecimal.ZERO, BigDecimal::add); 
    } 
} 

public class Item{ 
    // some Item values 

    @JsonProperty("totalAmount") 
    public BigDecimal total(){ 
     return price.multiply(new BigDecimal(this.quantity)); 
    } 
} 

출력 뭔가 :

{ 
    "creationDate": "2016-12-07T09:45:38.000+0000", 
    "items": [ 
    { 
     "itemName": "Nintendo 2DS", 
     "description": "Konsole from Nintendo", 
     "price": 300.5, 
     "quantity": 3, 
     "totalAmount": 901.5 
    }, 
    { 
     "itemName": "Nintendo Classic", 
     "description": "Classic nintendo Console from the 80th...", 
     "price": 75, 
     "quantity": 2, 
     "totalAmount": 150 
    } 
    ], 
    "totalAmount": 1051.5, 
    "_links": { 
    "self": { 
     "href": "http://localhost:8082/carts/2" 
    }, 
    "cart": { 
     "href": "http://localhost:8082/carts/2" 
    }, 
    "checkout": { 
     "href": "http://localhost:8083/order" 
    } 
    } 
} 

그것을 희망 당신 :