10

jsonいくつかのフィールドを持つ単純なメッセージがあり、 spring-web.

問題: ターゲット クラスのフィールドの名前が、json 応答の int とは異なります。Javaでフィールドの名前を変更せずに、どうすればそれらをオブジェクトにマップできますか?

ここに配置できる注釈はありますか?

{
  "message":"ok"
}

public class JsonEntity {
    //how to map the "message" json to this property?
    private String value;
}

RestTemplate rest = new RestTemplate();
rest.getForObject(url, JsonEntity.class);
4

3 に答える 3

1

慣れている場合は、Jaxb アノテーションを使用して、Jackson を使用して json をマーシャリング/アンマーシャリングすることもできます

@XmlRootElement
public class JsonEntity {
   @XmlElement(name = "message")
  private String value;
}

ただし、Jackson コンテキスト プロパティを初期化する必要があります。ここでは、Jaxb アノテーションを使用して Jackson コンテキストを初期化する方法の例を示します。

ObjectMapper mapper = new ObjectMapper();

AnnotationIntrospector introspector = new JaxbAnnotationIntrospector();
mapper.getDeserializationConfig().setAnnotationIntrospector(introspector);
mapper.getSerializationConfig().setAnnotationIntrospector(introspector);
于 2015-04-20T11:38:49.110 に答える