JavaアプリケーションでJsonを使う
4365 ワード
一、what's Json?
JSON(JavaScript Object Notation)は、軽量級のデータ交換フォーマットです.データ伝送の過程において、伝達されるのはJsonの文法形式に合致する文字列だけです.つまり、伝達されるのは文字列です.webアプリケーションの開発では、Jsonを通じてフロントとバックグラウンドの間のデータ交換が可能です.
JSON構造は2つの構造があります.
jsonは簡単に言えば、javascriptのオブジェクトと配列です.この2つの構造はオブジェクトと配列の2つの構造です.この2つの構造によって様々な複雑な構造が表現されます.
1、対象:対象はjsに「{}」と表示されている内容で、データ構造は{key:value,key:value、...}のキー値ペアの構造であり、対象に向けた言語ではkeyが対象の属性であり、valueが対応する属性値であるため、分かりやすく、取得方法は対象となります.keyは属性値を取得します.この属性値の種類は数字、文字列、文字列、文字列、文字列、文字列配列、オブジェクトはいくつかあります.JavaではMap構造です.
2、配列:配列はjsで中かっこ「[]」で拡張された内容で、データ構造は[java]、「javascript」、「vb」、…」であり、値の取り方はすべての言語と同じで、索引を使って取得します.フィールド値の種類は数字、文字列、配列、オブジェクトの種類があります.Javaではlist構造である.
オブジェクト、配列の2つの構造を経て複雑なデータ構造に組み合わせることができます.
二、Json in Javascript
Json文法を使ってオブジェクトを作成します.
var people={「name」:「jack」,「sex」:「mail」}
このような文法でjsonオブジェクトを作成することができます.「{}」で囲んで、key:valueペアを「、」で区切って、以下はこのような文法の模式図です.
Json文法を使って配列を作成します.
var arr=[value 1,value 2...]
一つは複数のpeopleの配列peoples=「{name]」「{jack}sex」:「mail」、{name]:「lily」、「{sex}femail」;
Json配列はこのような文法によって作成できます.「[]」で囲まれて、配列要素間は「,」で区切られています.以下はこのような文法の模式図です.
Json形式文字列を使ってサーバと対話する場合、Json拡張の方法で文字列をJavaScriptオブジェクトに変換するか、オブジェクトをJson形式文字列に変換することができます.まず登録します.http://www.json.orgJson 2.jsファイルをダウンロードします.このパッケージを導入すると、jsオブジェクトは直接toJSONString()で文字列のフォーマットに変換されます.文字列はparseJSON()を使用することができます.jsオブジェクトに変換します.
アクセスデータ
配列要素はドット番号で表される必要があります.したがって、上のpeoplesリストの最初の項目の名前にアクセスするには、JavaScriptで以下のようなコードを使う必要があります.
peoples[0].name
このようなシンタックスを利用して、任意のJSONフォーマットのデータを処理することができ、任意の追加的なJavaScriptツールパケットまたはAPIを使用する必要がない.
データの変更
ポイント番号と四角い括弧でデータにアクセスできるように、同じ方法でデータを簡単に変更することもできます.
peoples[0].name="Rachmainov"
文字列をJavaScriptオブジェクトに変換した後、このように変数内のデータを変更することができます.
三、Struts 2のJsonサポート
JSONはプラグインであり、JavaScriptでアクションを非同期的に起動することができます.JSONはJsonの戻り結果のタイプを提供します.
JSONは結果のタイプを返します.この応答結果は任意の視聴覚レイヤーに戻る必要がなく、JSONはアクション内のステータス情報をJSON指定のフォーマットのデータに順番に並べて、JAVSCRIPTに返します.これによりAJAXのアプリケーションインタラクションを完了します.
Struts 2を解凍したディレクトリのlibサブディレクトリの下でstruts 2-json-plugin-2.2.jarファイルをWebアプリケーションのWEB-INF\libディレクトリにコピーすると、Struts 2アプリケーションにJSONプラグインを追加することができます.
JSON文字列に戻るように構成されたアクションは、通常のアクションとは少し違っていて、JsonのResoultタイプであり、任意のビュータイプを配置する必要はないはずです.アクション類の書き方は普通と同じです.
アクション設定のStruts.xmlファイルコードは以下の通りです.
GnoreHurarchyパラメータ:等級を無視するかどうか、すなわち継承関係を表します.例えば、TestActionはBaseActionに継承されます.TestActionで返されるjson文字列はデフォルトでは父クラスBaseActionの属性値は含まれません.
GnoreHurarchy値はデフォルトでtrueで、falseに設定すると親と子の属性が一緒に戻ります.
false
exclude Null Propertiesパラメータ:空の値を削除するかどうかを示し、デフォルト値はfalseであり、trueに設定すると自動的に空の値をフィルタし、空の値ではない値だけを出力します.
true
rootパラメータ:戻り結果からognl表現に基づいて出力する必要がある結果を取り出します.
personオブジェクトのみを出力するname属性値は、以下のように構成されています.
person.name
include Propertiesパラメータ:出力結果に含まれる属性値が必要です.ここでは正規表現と属性名が一致します.複数の正規表現を分割して埋めることができます.
person.* person\.name
exclude Propertiesパラメータ:出力結果を削除する属性値、正規表現の属性名にも対応しています.複数の正規表現を分割して埋めることができます.include Propertiesパラメータと同じです.
また、struts 2-json-plugin-2.28.jarはJSONUtilツールクラスを提供しています.javaクラスを文字列に変換することをサポートしていますが、jsonからjavaオブジェクトに変換するとMapまたはListタイプにしか変換できません.
四、GsonのJsonサポート
javaではJson-libまたはgoogleのGsonを通じてJavaオブジェクトとJSONデータのマッピングが可能です.それに比べてGsonの操作はもっと簡単で小さいですが、機能は同じです.オブジェクトであれ、配列であれ、複雑なmapの集合であれ、操作は同じです.Gsonはgoogleから生まれたので、自分のシステムandroidの上で使います.これもこれです
Gson使用:
1.まずGsonオブジェクトを作成します.
Gson=new Gson()//一般オブジェクト作成
Gson=Gson=new Gson Builder().set DateFormat(「yyy-M-dd HH:mm」).create()//設定指定日付フォーマット、変換時日付タイプは指定のフォーマットに変換します.
2.Gsonオブジェクトのfrom JSON方法でJson文字列をJavaタイプに変換する
3.GsonオブジェクトのtoJSON法により、オブジェクトを文字列に変換することができます.
JSON(JavaScript Object Notation)は、軽量級のデータ交換フォーマットです.データ伝送の過程において、伝達されるのはJsonの文法形式に合致する文字列だけです.つまり、伝達されるのは文字列です.webアプリケーションの開発では、Jsonを通じてフロントとバックグラウンドの間のデータ交換が可能です.
JSON構造は2つの構造があります.
jsonは簡単に言えば、javascriptのオブジェクトと配列です.この2つの構造はオブジェクトと配列の2つの構造です.この2つの構造によって様々な複雑な構造が表現されます.
1、対象:対象はjsに「{}」と表示されている内容で、データ構造は{key:value,key:value、...}のキー値ペアの構造であり、対象に向けた言語ではkeyが対象の属性であり、valueが対応する属性値であるため、分かりやすく、取得方法は対象となります.keyは属性値を取得します.この属性値の種類は数字、文字列、文字列、文字列、文字列、文字列配列、オブジェクトはいくつかあります.JavaではMap構造です.
2、配列:配列はjsで中かっこ「[]」で拡張された内容で、データ構造は[java]、「javascript」、「vb」、…」であり、値の取り方はすべての言語と同じで、索引を使って取得します.フィールド値の種類は数字、文字列、配列、オブジェクトの種類があります.Javaではlist構造である.
オブジェクト、配列の2つの構造を経て複雑なデータ構造に組み合わせることができます.
二、Json in Javascript
Json文法を使ってオブジェクトを作成します.
var people={「name」:「jack」,「sex」:「mail」}
このような文法でjsonオブジェクトを作成することができます.「{}」で囲んで、key:valueペアを「、」で区切って、以下はこのような文法の模式図です.
Json文法を使って配列を作成します.
var arr=[value 1,value 2...]
一つは複数のpeopleの配列peoples=「{name]」「{jack}sex」:「mail」、{name]:「lily」、「{sex}femail」;
Json配列はこのような文法によって作成できます.「[]」で囲まれて、配列要素間は「,」で区切られています.以下はこのような文法の模式図です.
Json形式文字列を使ってサーバと対話する場合、Json拡張の方法で文字列をJavaScriptオブジェクトに変換するか、オブジェクトをJson形式文字列に変換することができます.まず登録します.http://www.json.orgJson 2.jsファイルをダウンロードします.このパッケージを導入すると、jsオブジェクトは直接toJSONString()で文字列のフォーマットに変換されます.文字列はparseJSON()を使用することができます.jsオブジェクトに変換します.
アクセスデータ
配列要素はドット番号で表される必要があります.したがって、上のpeoplesリストの最初の項目の名前にアクセスするには、JavaScriptで以下のようなコードを使う必要があります.
peoples[0].name
このようなシンタックスを利用して、任意のJSONフォーマットのデータを処理することができ、任意の追加的なJavaScriptツールパケットまたはAPIを使用する必要がない.
データの変更
ポイント番号と四角い括弧でデータにアクセスできるように、同じ方法でデータを簡単に変更することもできます.
peoples[0].name="Rachmainov"
文字列をJavaScriptオブジェクトに変換した後、このように変数内のデータを変更することができます.
三、Struts 2のJsonサポート
JSONはプラグインであり、JavaScriptでアクションを非同期的に起動することができます.JSONはJsonの戻り結果のタイプを提供します.
JSONは結果のタイプを返します.この応答結果は任意の視聴覚レイヤーに戻る必要がなく、JSONはアクション内のステータス情報をJSON指定のフォーマットのデータに順番に並べて、JAVSCRIPTに返します.これによりAJAXのアプリケーションインタラクションを完了します.
Struts 2を解凍したディレクトリのlibサブディレクトリの下でstruts 2-json-plugin-2.2.jarファイルをWebアプリケーションのWEB-INF\libディレクトリにコピーすると、Struts 2アプリケーションにJSONプラグインを追加することができます.
JSON文字列に戻るように構成されたアクションは、通常のアクションとは少し違っていて、JsonのResoultタイプであり、任意のビュータイプを配置する必要はないはずです.アクション類の書き方は普通と同じです.
アクション設定のStruts.xmlファイルコードは以下の通りです.
true
text/html
JsonタイプのResultパラメータ説明:GnoreHurarchyパラメータ:等級を無視するかどうか、すなわち継承関係を表します.例えば、TestActionはBaseActionに継承されます.TestActionで返されるjson文字列はデフォルトでは父クラスBaseActionの属性値は含まれません.
GnoreHurarchy値はデフォルトでtrueで、falseに設定すると親と子の属性が一緒に戻ります.
false
exclude Null Propertiesパラメータ:空の値を削除するかどうかを示し、デフォルト値はfalseであり、trueに設定すると自動的に空の値をフィルタし、空の値ではない値だけを出力します.
true
rootパラメータ:戻り結果からognl表現に基づいて出力する必要がある結果を取り出します.
personオブジェクトのみを出力するname属性値は、以下のように構成されています.
person.name
include Propertiesパラメータ:出力結果に含まれる属性値が必要です.ここでは正規表現と属性名が一致します.複数の正規表現を分割して埋めることができます.
person.* person\.name
exclude Propertiesパラメータ:出力結果を削除する属性値、正規表現の属性名にも対応しています.複数の正規表現を分割して埋めることができます.include Propertiesパラメータと同じです.
また、struts 2-json-plugin-2.28.jarはJSONUtilツールクラスを提供しています.javaクラスを文字列に変換することをサポートしていますが、jsonからjavaオブジェクトに変換するとMapまたはListタイプにしか変換できません.
四、GsonのJsonサポート
javaではJson-libまたはgoogleのGsonを通じてJavaオブジェクトとJSONデータのマッピングが可能です.それに比べてGsonの操作はもっと簡単で小さいですが、機能は同じです.オブジェクトであれ、配列であれ、複雑なmapの集合であれ、操作は同じです.Gsonはgoogleから生まれたので、自分のシステムandroidの上で使います.これもこれです
Gson使用:
1.まずGsonオブジェクトを作成します.
Gson=new Gson()//一般オブジェクト作成
Gson=Gson=new Gson Builder().set DateFormat(「yyy-M-dd HH:mm」).create()//設定指定日付フォーマット、変換時日付タイプは指定のフォーマットに変換します.
2.Gsonオブジェクトのfrom JSON方法でJson文字列をJavaタイプに変換する
3.GsonオブジェクトのtoJSON法により、オブジェクトを文字列に変換することができます.