본문 요청으로 JSON을 허용하는 Java API (나머지)가 있습니다. 본문을 Java 클래스에 매핑해야하지만 JSON 속성 중 하나가 JSON 자체이므로 해당 구조를 예측할 수 없습니다.JSON 속성에서 Java API로 나머지 POST JSON
예를 들어,이 자원이다 :
@POST
public void paymentInfo(PaymentInfoEntity paymentInfoEntity)
throws JsonGenerationException, JsonMappingException, IOException {
...
}
이것은 JSON의 예는 다음과 같습니다
public class PaymentInfoEntity {
public Integer progressive;
public JsonNode params;
}
으로 :
{
progressive: 123,
params: { [another valid JSON node] }
}
이 내가 엔티티를하고자하는 방법이다 이 구성에서이 오류가 있습니다 :
org.codehaus.jackson.map.JsonMappingException: Can not construct instance of com.fasterxml.jackson.databind.JsonNode, problem: abstract types can only be instantiated with additional type information
JsonNode params
대신 BaseJsonNode params
을 선언하면 같은 오류가 발생합니다.
내가 대신에 Object params
을 선언하면 작동합니다. 그런 다음 어떻게 JSON을 파싱 할 수 있습니까? 이 경우 params.toString()
은 {key1: "stringvalue1", key2: "stringvalue2"}
대신 {key1=stringvalue1, key2=stringvalue2}
양식입니다.
내 목표를 달성하는 데 가장 좋은 방법은 무엇입니까? 감사합니다.
제가 작성한 것처럼, 나는 BaseJsonNode도 시도해 보았습니다. Map가 작동하는 것 같습니다. 감사합니다. 그런 다음 새 ObjectMapper(). writeValueAsString (paymentInfoEntity.getParams())을 사용하여 JSON 객체를 가져옵니다. –