cfx開発jacksonカスタムjsonのシーケンス化と逆シーケンス化構成


ステップ1:mavenリファレンス
<dependency>
    <groupId>org.codehaus.jacksongroupId>
    <artifactId>jackson-jaxrsartifactId>
    <version>1.9.13version>
dependency>

ステップ2:拡張ObjectMapperを作成するシーケンス化と逆シーケンス化の過程で、jsonフォーマットをカスタマイズしたい場合は、構成を統一することで実現できます.自分でクラスを作成してorgを拡張することができます.codehaus.jackson.mapパッケージのObjectMapperクラス.次のコードブロックで、カスタムJacksonObjectMapperクラスを作成します.
package com.divx.service.controller;

import org.codehaus.jackson.map.DeserializationConfig;
import org.codehaus.jackson.map.ObjectMapper;
import org.codehaus.jackson.map.SerializationConfig;

public class JacksonObjectMapper extends ObjectMapper{
    public JacksonObjectMapper() {
        super();
        //       UNWRAP_ROOT_VALUE   true,           ,  client     json         ,        
        super.configure(DeserializationConfig.Feature.UNWRAP_ROOT_VALUE, true);

        //      WRITE_NULL_PROPERTIES   false,               json   
       super.configure(SerializationConfig.Feature.WRITE_NULL_PROPERTIES, false);
       super.configure(SerializationConfig.Feature.INDENT_OUTPUT, true);
        }
}

DeserializationConfig.FeatureとSerializationConfig.Featureには多くの設定があり、自分のニーズに合わせて選択的に設定することができます.
ステップ3:xmlファイルにJacksonObjectMapper Beanを注入する
 id = "jacksionMapper" class="com.divx.service.controller.JacksonObjectMapper"/>

 id="jsonProvider" class="org.codehaus.jackson.jaxrs.JacksonJsonProvider" >
        <property name="mapper" ref="jacksionMapper">property>
  

これにより、jsonproviderは、カスタム変換形式でシーケンス化および逆シーケンス化されます.