99re热这里只有精品视频,7777色鬼xxxx欧美色妇,国产成人精品一区二三区在线观看,内射爽无广熟女亚洲,精品人妻av一区二区三区

Hasor 請求并返回JSON

2018-10-09 11:04 更新

將請求的處理結(jié)果作為 JSON 響應給客戶端。


在 Hasor 中響應一個 JSON 字符串給瀏覽器非常簡單,首先我們的請求處理器只需要將要作為 JSON 進行響應的數(shù)據(jù)在請求處理方法上以返回值形式 return 即可以,剩下的就交給渲染器。下面是請求處理的例子:


@MappingTo("/helloAcrion.json")
public class HelloAcrion extends WebController {
    public Object execute(RenderInvoker invoker) {
        return ...
    }
}


一般情況下請求一個 json 資源我們習慣用 .json 作為資源的后綴。如果您使用的是 restful 風格的路徑,您可能還需要通過 @Produces 注解來指定響應的格式。如下:

@MappingTo("/user/info/${userID}")
public class HelloAcrion extends WebController {
    @Produces("json")
    public Object execute(RenderInvoker invoker) {
        return ...
    }
}


配置 JSON 渲染器,Hasor 內(nèi)置的 JSON 渲染器。會自動感知當前項目中可以使用的 JSON 序列化庫,默認情況下,JsonRender會自動按照下面順序嘗試尋找可以使用的 JSON 庫:fastjson、Gson、Json-lib。如果您沒有引入任何一個 json 庫那么會有一個 ClassNotFoundException 異常。


Hasor 的 JSON 渲染器還允許您跳過 Hasor 內(nèi)置 JSON 渲染庫的查找規(guī)則,直接使用您指定的渲染方式。您可以通過這種方式實現(xiàn)自定義 JSON 渲染,使用方式如下:

// JSON 渲染引擎
public class UserJsonRenderEngine implements JsonRenderEngine {
    @Override
    public void writerJson(Object renderData, Writer writerTo) throws Throwable {
        //將 renderData 數(shù)據(jù)序列化到 writerTo 中
    }
}
// 注冊 JSON 渲染引擎
public class StartModule extends WebModule {
    @Override
    public void loadModule(WebApiBinder apiBinder) throws Throwable {
        // - 設(shè)置 JSON 渲染器
        apiBinder.suffix("json").bind(JsonRender.class);              //設(shè)置 JSON 渲染器
        // - 使用自定義 JSON 序列化引擎(可選)
        apiBinder.bind(JsonRenderEngine.class).to(UserJsonRenderEngine.class);
    }
}

當上面這一切都做好之后,您只需要訪問一下您的請求處理器即可得到結(jié)果。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號