この記事では、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);
}
});
}
}
**
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 サイトの他の関連記事を参照してください。