XMLHttpRequest.send()メソッドで渡したクエリ文字列をservlet側でjson変換する方法

XMLHttpRequest.setRequestHeader(“Content-Type”, “text/plain;charset=UTF-8”)

を指定している場合はHttpServletRequest.getParameter(String name)では取得できない。

※「Content-Type: application/x-www-form-urlencoded」であれば可能

■取得方法

request.setCharacterEncoding( "UTF-8" );

// クエリを全部取り出す
BufferedReader br = new BufferedReader( request.getReader() );
String query = br.readLine();

// クエリ文字列をJSON文字列に変換する
// すべての & を "," に置換
String replaced1 = query.replaceAll("&", "\",\"");

// すべての = を ":" に置換
String replaced2 = replaced1.replaceAll("=", "\":\"");

// {" と "} 文字列を挟む
String jsonStr = "{\"" + replaced2 + "\"}";

/ 実行
// JavaBeanオブジェクトとJSONで変換するObjectMapperを生成
ObjectMapper objectMapper = new ObjectMapper();

// JSON文字列をJavaBeanオブジェクト(TargetBean)に変換する
TargetBean targetBean = objectMapper.readValue(jsonStr, TargetBean.class);

スポンサーリンク
google 6948682462
google 6948682462

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク
google 6948682462