2017-01-08 4 views
0

ObjectMapperは、プライベートメンバーしか持たず、コンストラクタもgetter/setterも持たないクラスで動作するはずですか?ObjectMapperの制限

私はこれを試しましたが、問題は解決しません。

mapper.setVisibility(JsonMethod.FIELD, JsonAutoDetect.Visibility.ANY); 
+0

クラスは、*必ず*コンストラクタを持っています。デフォルトのコンストラクタのみを持っているということですか? – chrylis

+0

[可能な限りジャックソンをフィールドのみを使用するよう指定する方法 - 好ましくはグローバルに](http://stackoverflow.com/questions/7105745/how-to-specify-jackson-to-only-use-fields-preferably-globally) –

+0

@chrylis、そうです、それは私が意味するものです。書いてくれてありがとう – Andy897

答えて

0

http://www.baeldung.com/jackson-field-serializable-deserializable-or-not

static class MyDtoAccessLevel { 
    private String stringValue = "hidden"; 
} 

public static void main(String[] args) throws JsonProcessingException { 
    ObjectMapper mapper = new ObjectMapper(); 
    mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY); 
    MyDtoAccessLevel dtoObject = new MyDtoAccessLevel(); 
    System.out.println(mapper.writeValueAsString(dtoObject)); 
    //prints {"stringValue":"hidden"} 
} 
+0

書いてくれてありがとう。しかし、私は古いバージョンのcom.fasterxml.jackson.coreのようなorg.codehaus.jackson.map.ObjectMapperを使用しています。私は古いバージョンでPropertyAccessorを設定するオプションが表示されません。質問: – Andy897

+0

私はあなたの答えを誰に投票したかについての手がかりはありません。 – Andy897

+0

私のコードサンプルはJackson 2.x用です.Japan 1.xはもはや維持されていません。切り替えが可能でしょうか? –