この記事では、springMVC の json データを操作する方法の詳細な説明を主に紹介します。編集者が非常に優れていると考えたので、参考として共有します。編集者をフォローして見てみましょう
フロントデスクコード:
function channel(){ //先获取选中的值 var channelId = $("#channelId option:selected").val(); //来判断发送的链接 if(channelId ==2){ **需要注意地方 start** var schoolBannerInfo = { "img": channelId, "title": channelId, "info": channelId, "channelId": channelId }; **需要注意地方 end** $.ajax({ url:"ceshijson", type:"post", dataType:'json', **需要注意地方 start** contentType:'application/json;charset=utf-8', data:JSON.stringify(schoolBannerInfo), **需要注意地方 end** success:function(data){ alert(data); }, error:function(XMLHttpRequest, textStatus, errorThrown){ alert("Error") alert(XMLHttpRequest.status); alert(XMLHttpRequest.readyState); alert(textStatus); } }); } }
太字の部分は注意が必要な部分です。
contentType:'application/json;charset=utf-8' は省略できません。省略しないと、415 エラーが報告されます。
結局のところ、私が送信しているのはjsonstringなので、来るデータがjsonデータであることをサーバーに伝える必要があります。
JSON.stringify() は JavaScript オブジェクト を json 文字列に変換します
JSON.parse(jsonstr) は json 文字列を JavaScript オブジェクトに変換します
追加知識: json は実際には JavaScript のサブセットです。
参照アドレス: www.jb51.net/article/35090.htm
バックエンドコード:
pojo class:
public class SchoolBannerInfo { private Integer id; private Date createTime; private String img; private String title; private String info; private Integer seq; private Integer schoolId; private String type; private boolean enable; private String link; private String channelId; }
getメソッドとsetメソッドは自分で生成したものなので、ここには掲載しません。
コントローラー内のメソッド:
@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8") @ResponseBody public SchoolBannerInfo ceshijson(@RequestBody SchoolBannerInfo schoolBannerInfo) throws IOException{ // Map<String,Object> map = new HashMap<String,Object>(); // map.put("channelId", channelId); // ObjectMapper mapper = new ObjectMapper(); // channelId = mapper.writeValueAsString(map); return schoolBannerInfo; }
注:
1.フロントデスクから送信されるデータはJSONデータであるため、このアノテーションを使用してこれらのデータを受け取る方法を解析する必要があります。 pojo クラスのオブジェクトに。
2. jsonデータも返したいので。したがって、このアノテーション @ResponseBody は Java オブジェクトを JSON 文字列に変換するために必要です
3. @RequestBody を使用する場合、フロント デスクから渡されるデータは JSON 文字列である必要があります。 jsonオブジェクトの場合はエラーとなります。したがって、フロントエンドのデータ部分に data:{"channelId":2} と記述すると、これは機能しません。 {"channelId":2} は json オブジェクトであるため、外側のレイヤーに引用符 '{"channelId":2}' を追加する必要があります。
4. メソッドの戻り値が String などの単純な型の場合はどうするか!
【関連する推奨事項】
1. 特別な推奨事項: 「php Programmer Toolbox」V0.1 バージョンのダウンロード
以上がSpringMVC の JSON データ処理に関するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。