2017-03-01 23 views
0

我使用@JSONCreator@JsonCreator在Lagom框架中將響應bean轉換爲JSON。但是,JSON沒有格式化。我如何使用註釋(不是ObjectMapper)打印JSON?下面是我的示例響應豆:傑克遜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);