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

Y2J
リリース: 2017-05-16 09:23:28
オリジナル
1667 人が閲覧しました

この記事では、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() の

関数

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

また、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 サイトの他の関連記事を参照してください。

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