SpringMVC の JSON データ処理に関するチュートリアル

Y2J
リリース: 2017-05-16 09:17:49
オリジナル
1491 人が閲覧しました

この記事では、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 バージョンのダウンロード

2. Java 入門レベルの入門ビデオチュートリアル

以上がSpringMVC の JSON データ処理に関するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!