Jackson 1.9.7 を使用して、Java オブジェクトから JSON を生成しています。
オブジェクトを JSON にシリアル化する方法は次のとおりです。
public String constructJson(Object object)
throws EvaluationException {
try {
objectMapper.setSerializationConfig(
objectMapper.getSerializationConfig()
.withSerializationInclusion(JsonSerialize.Inclusion.NON_NULL)
.withSerializationInclusion(JsonSerialize.Inclusion.NON_EMPTY)
.with(SerializationConfig.Feature.WRAP_ROOT_VALUE)
);
return objectMapper.writeValueAsString(object);
} catch (IOException e) {
LOGGER.error("Error", e);
throw new EvaluationException("Error", e);
}
}
XSD スキーマから生成された Java オブジェクトを渡していますが、注釈がありません。@XmlRootElement
Jackson にそのオブジェクトの名前を保持するように指示する方法はありますか?
現時点で生成されるものは次のとおりです。
{"": {
"generatedId": "EA7EB141D9454433B5E24F374BF25118",....
それはあるべきですが:
{"theNameOfTheRoot": {
"generatedId": "EA7EB141D9454433B5E24F374BF25118",....
オブジェクトマッパーにルートとして渡すクラスは次のようになります。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "EvaluationType", propOrder = {
"generatedId",
"style",
"status",
"candidate",
"texts",
"evaluationParts"
})
public class EvaluationType {
.....
}
@XmlType
それで、Jackson に注釈から名前を取得するように指示する方法があるでしょうか? 誰もこれを解決する方法を知っていますか?