springmvc のJSONのデータのサポート
JSON(JavaScript Object Notation)は軽量のデータ交換フォーマットです。JSON 完全に言語に依存しないテキスト形式は、これらの特性は作るJSON 理想的なデータ交換言語を。
JSON 月JavaScriptのデータ転送のセットは文字列として表されるオブジェクト、文字列を容易に機能の間を通過することができ、または非同期アプリケーション意志から文字列のWeb クライアント側、サーバ側プログラムに。この文字列は少し奇妙に見えますが、 JavaScriptはそれを説明するのは簡単ですが、JSONは以上表すことができ、「名前/ 値のペア」より複雑な構造を。例えば、リストは、オブジェクトの単純および複雑な配列だけでなく、キーと値を表すことができます。
JSON データ形式のインタフェース呼び出し、 HTMLのより一般的なページでは、 JSONの形式は、比較的容易に解決するには、使用することは非常に一般的であり、比較的簡単です。で SpringMVC でなく、ためにサポートして JSONの構文解析と変換データ
1 JSONは名前を表し / 値のペア。
その最も単純な形態では、これは次のことができる JSONを表し、「名前/ 値のペア」::{「デービッド」「firstNameの」} 、より高い等価プレーンテキストよりも、この非常に基本的な例を、実際には「名前/ 値のペア」より多くのスペースを取る: firstNameの=ブレットは、複数のときしかし、「名前/ 値のペアが」つなぎ合わせたときに、JSONはその値を反映します。まず第一に、あなたはより多く作成することができ、「名前/ 値」のようなレコードを、:
{ "firstNameの": "ブレット"、 "lastNameの": "マクローリン"、 "電子メール": "AAAA"}
あるビューの文法のポイントから、「名前/ 値ペア」は大きな利点に比べて、この場合にはJSONを使いやすくするために、より読みやすいです。
例えば、これらの3つの値が同じレコードの一部であることは明らかである、これらの値は、いくつかの接続を持っているようにブレース。
2 JSONを表す配列:
値のセットを表現するときに必要、 JSONは唯一の読みやすさを改善するだけでなく、複雑さを軽減することができます。たとえば、あなたが名前のリストを表現したいとします。ではXML 、開始タグと終了タグの多くの必要性は、一般的な名前場合は/ 値のペア、そして必要が独自のデータフォーマットを確立する、またはキー名を変更するPERSON1-firstNameのような形態を。
あなたが使用している場合は JSONを、単にレコードを複数の中括弧と一緒にグループ化されました:
{ "人": [
{ "firstNameの": "ブレット"、 "lastNameの": "マクローリン"、 "電子メール": "AAAA"}、
{ "firstNameの": "ジェイソン"、 "lastNameの": "ハンター"、 "電子メール": "BBBB"}、
{ "firstNameの": "はElliotte"、 "lastNameの": "ハロルド"、 "電子メール": "CCCC"}
]}
要求:クライアントが送信する JSONのデータ形式を、サーバ側JSONは、データオブジェクトのフォーマットタイプを変換し、戻りJSONは、表示のためにクライアント・データ・コンテンツ、データを-formatted。
すなわち:リクエストとリターンがされている JSONはデータを-formatted。
3 ビルドの開発環境:
1. Mavenの依存関係が導入されています。
<! - 对JSON的支持- > <! - https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind - > < 依存> < groupIdを> com.fasterxml.jackson .core </ groupIdを> < たartifactId >ジャクソンデータバインド</ たartifactId > < バージョン> 2.9.9 </ バージョン> </ 依存関係> <! - https://mvnrepository.com/artifact/com.fasterxml.jackson。コア/ジャクソン・コア- > < 依存> <groupId > com.fasterxml.jackson.core </ groupIdを> < たartifactId >ジャクソンコア</ たartifactId > < バージョン> 2.9.9 </ バージョン> </ 依存関係> <! - https://mvnrepository.com/artifact /com.fasterxml.jackson.core/jackson-annotations - > < 依存> < groupIdを> com.fasterxml.jackson.core </ groupIdを> < たartifactId >ジャクソンの注釈</ たartifactId> < バージョン> 2.9.9 </ バージョン> </ 依存関係>
2. 追加 JSONのためspringmvcサポートを
< 豆の クラス= "org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > < プロパティ名= "messageConverters" > < リスト> < refの豆= "jsonHttpMessageConverter" /> </ リスト> </ プロパティ> </ 豆> < 豆ID = "jsonHttpMessageConverter" クラス= "org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" > <プロパティ名= "supportedMediaTypes" > < リスト> < 値>アプリケーション/ JSON;のcharset = UTF-8 </ 値> </ リスト> </ プロパティ> </ 豆>
注:<MVC:注釈駆動型> </ MVC:注釈駆動型>かもしれ
コントローラレイヤコードを設定します:
@RequestBody 受信受信のJSON データ、 JSON形式のデータ自動包装モデル。
findStuById(@RequestBodyスチューSTU)
@ResponseBody 背景モデルコンバートのJSON オブジェクトを、ページに戻ります。
( "/ findStuById2.do" @RequestMapping ) 公衆@ResponseBody学生findStuById2(){ 学生STU = stuService.FindStu(1 )。 System.out.println(STU)。 リターンSTU。 }
3.テストを実行します。http:// localhost:8080 / findStuById2.do