ホームページ  >  記事  >  Java  >  コントローラーメソッドの戻り値が単純型の場合、JSONと対話するにはどうすればよいですか?

コントローラーメソッドの戻り値が単純型の場合、JSONと対話するにはどうすればよいですか?

Y2J
Y2Jオリジナル
2017-05-16 09:23:281596ブラウズ

この記事では、springmvc の json データ インタラクション コントローラー メソッドを中心に紹介します。戻り値は非常に実用的です。必要な方は参考にしてください。

コントローラー メソッドの戻り値がこのような単純な型の場合。文字列として、json と対話する方法 対話についてはどうですか?

@RequestBody を使用します

例えば、コードは次のとおりです:

@RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
@ResponseBody
public String ceshijson(@RequestBody String channelId) throws IOException{

 return channelId;

上記のコードの場合、フロントデスクが JSON を送信するとき、次のように記述する必要があります (方法はたくさんあります)注: 前の記事で強調したように、@RequestBody を使用する場合、データを json

string

として受信するには String channelId が必要です。つまり、データが data:{'channelId':channelId} のように記述されている場合、それは誤りです。これは jsonobject 形式だからです。 JSON.stringify() の

関数

を使用したくない場合は、手動で文字列を自分で結合します:

function channel(){
   //先获取选中的值
   var channelId = $("#channelId option:selected").val();
   //来判断发送的链接
   if(channelId ==2){


   $.ajax({
     url:"ceshijson",
     type:"post",
     dataType:'json',
     contentType:'application/json;charset=utf-8',
     data:JSON.stringify({'channelId':channelId}),
     success:function(data){
      alert(data.channelId);
     },
     error:function(XMLHttpRequest, textStatus, errorThrown){ 
     alert("Error") 
     alert(XMLHttpRequest.status); 
     alert(XMLHttpRequest.readyState); 
     alert(textStatus); 
     }
   });
   }
  }
また、channelId は二重引用符で囲まれており、一重引用符で記述することはできないことに注意してください。 json 構文ルール。

**

data:'{"channelId":'+channelId+'}'

の間違った書き方であるシングルクォーテーションに変更すると、バックエンドには渡せますが、バックエンドから送り返される際にunknownと表示されてしまいます。つまり、

key

は二重引用符で囲む必要があります。

@RequestBody を使用しない

data:"{'channelId':"+channelId+"}"
フロント コード

 @RequestMapping(value="/ceshijson",produces="application/json;charset=UTF-8")
 @ResponseBody
 public String ceshijson(String channelId) throws IOException{
  Map<String,Object> map = new HashMap<String,Object>();
   map.put("channelId", channelId);
   ObjectMapper mapper = new ObjectMapper();
   channelId = mapper.writeValueAsString(map);
  return channelId;
 }

このメソッドは、ObjectMapper の writeValueAsString を使用して Java オブジェクトを JSON 文字列に変換します。

要約: これは一般的なデータの受信方法ではないため、この方法は実際にはあまり実用的な意味を持ちません。ただ理解してください!


【関連する推奨事項】

1.

特別な推奨事項: 「php Programmer Toolbox」V0.1 バージョンのダウンロード2.

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

以上がコントローラーメソッドの戻り値が単純型の場合、JSONと対話するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。