2017-03-01 3 views
0

Lagom Framework에서 응답 빈을 JSON으로 변환하려면 @JSONCreator@JsonCreator을 사용하고 있습니다. 그러나 JSON은 형식이 지정되지 않습니다. (ObjectMapper가 아닌) 어노테이션을 사용하여 JSON을 어떻게 인쇄 할 수 있습니까? 여기 내 샘플 응답 콩입니다 :Jackson JSON 주석을 사용하여 예쁜 프린트

@Immutable 
@JsonDeserialize 
public class foo { 

    private final List<Result> _result; 

    private final MetadataBean _meta; 

    @JsonCreator 
    public foo (List<Result> _result, MetadataBean _meta) { 
    this._result= _result; 
    this._meta = _meta; 
    } 

} 

답변

1

그것은 꽤 인쇄 ObjectMappercannot be influenced by annotations에 의해 제어됩니다 보인다. negotiated serializers에 대한 Lagom 문서는이 예제를 가지고 :

public class JsonTextSerializer implements MessageSerializer.NegotiatedSerializer<String, ByteString> { 
    private final ObjectMapper mapper = new ObjectMapper(); 

    @Override 
    public MessageProtocol protocol() { 
     return new MessageProtocol(Optional.of("application/json"), Optional.empty(), Optional.empty()); 
    } 

    @Override 
    public ByteString serialize(String s) throws SerializationException { 
     try { 
      return ByteString.fromArray(mapper.writeValueAsBytes(s)); 
     } catch (JsonProcessingException e) { 
      throw new SerializationException(e); 
     } 
    } 
} 

예쁜 인쇄 후 (아마 생성자) 매퍼에서 사용할 수 있습니다

mapper.enable(SerializationFeature.INDENT_OUTPUT);