サーブレット出力JSONデータサーブレットブラウザにJSONデータを返す

2065 ワード

サーブレット出力JSONデータサーブレットブラウザにJSONデータを返す
 
一、jarパッケージに依存する
1、gson-2.8.5:オブジェクトとjson文字列間の相互変換.
 
 
二、コード実装--普通の文字列が戻る
@WebServlet("/jsonServlet")
public class JsonServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws     ServletException, IOException {
        //   json    
        response.setContentType("text/json;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        String str ="{\"  \":\"HaHa  \",\"  \":\"18  \"}";
        out.println(str);
        out.flush();
        out.close();
    }
}

 
三、コード実装--オブジェクト--Gsonオブジェクトを使用して文字列を回転する
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    //   json    
    response.setContentType("text/json;charset=UTF-8");
    response.setCharacterEncoding("UTF-8");
    PrintWriter out = response.getWriter();
    List list = clientService.findList(new Client());
    Gson gson = new Gson();
    String json = gson.toJson(list);
    out.println(json);
    out.flush();
    out.close();
}

 
四、ajaxを用いてjsonデータを取得する


    $.ajax({
        url:'${ctx}/jsonServlet',
        type:'POST',
        data:{},
        dataType:'json',
        success:function(data){
            var str =JSON.stringify(data);
            alert(str);
        }
    });

五、まとめ
1、本例のコードで使用されるサーブレットバージョンは3.0であるため、注釈の形式が使用される.3.0未満の方は、webでお願いします.xmlファイルでサーブレットを構成します.ここではリストされません.
2、三中のオブジェクトは、任意のオブジェクトであってもよく、コードが簡潔で理解しやすいように、Listを取得する詳細コードはリストされない.
3、servletからjsonデータを出力するにはresponseを使用します.使用する前に、エンコードフォーマットとレスポンスコンテンツのタイプを設定する必要があります.そうしないと、中国語が文字化けしてしまう可能性があります.(コードの冒頭の2つの言葉!)