SpringMVC Json格式輸出

SpringMVC Json格式輸出

實現目標:controller層,方法返回javabean自動以json格式輸出javabean。
本文Json格式輸出使用jackson框架。


jackson依賴jar:

  • jackson-core-2.3.3.jar
  • jackson-databind-2.3.3.jar
  • jackson-annotations-2.3.0.jar

jackson Maven依賴:

jackson Maven依賴配置


Spring JSON視圖解析配置:

這裏寫圖片描述


代碼清單

Controller層

@Controller
@RequestMapping("gateway")
public class DispatcherController {
    @Autowired
    private IDispatcherService dispatcherservice;

    /**
     * 服務調度
     * @param version
     * @return
     */
    @RequestMapping("")
    public BasicResponse excute(String method){
        //執行方法,獲得響應對象 
        //PS:測試方法,因此傳NULL值。接口實現會返回響應對象。
        BasicResponse response = dispatcherservice.excute(null);
        return response;
    }
}

Service層

@Service
public class PayServiceImpl implements IDispatcherService {
    private static Logger log = Logger.getLogger(PayServiceImpl.class);

    public BasicResponse excute(BasicRequest request) {
        log.info("請求支付了");
        return new PayResponse();
    }

}

javabean

public abstract class BasicResponse {
    private String code;
    @JsonProperty("err_msg")
    private String msg;
    public String getCode() {
        return code;
    }
    public void setCode(String code) {
        this.code = code;
    }
    public String getMsg() {
        return msg;
    }
    public void setMsg(String msg) {
        this.msg = msg;
    }
}

使用瀏覽器請求:http://locahost:8080/test/gateway
返回結果如下:

{“basicResponse”:{“code”:”00”,”err_msg”:”支付成功了”}}

至此我們的實現目標已基本實現,爲什麼是基本呢?因爲這個結果還不是我想要的。我想要的結果是:

{“code”:”00”,”err_msg”:”支付成功了”}

其實實現這個效果也不難只需要修改下Spring的xml配置就好啦

<mvc:view-resolvers>
        <mvc:content-negotiation>
            <mvc:default-views>
                <bean class="org.springframework.web.servlet.view.json.MappingJackson2JsonView">
                    <property name="extractValueFromSingleKeyModel">
                        <value>true</value>
                    </property>
                </bean>
            </mvc:default-views>
        </mvc:content-negotiation>
</mvc:view-resolvers>

怎麼樣簡單吧。
下一個課題:如果javabean嵌套javabean返回結果會是怎樣呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章