1。JSONの紹介
XMLと同様のJSON(JavaScriptオブジェクト表記)は、データ交換形式です。たとえば、JavaがXMLを使用することに加えてJavaScriptにデータを生成する場合、JSONを使用することもできます。
XMLよりもJSONの利点は、表現するのが非常に簡単であることです。公式ウェブサイト:http://www.json.org/
JSONはAJAXのXです(つまり、XMLを置き換えることができます)。 ------ JSONの創設者から。
注:JSONはドキュメント形式ではなく、 *.JSONドキュメントはありません。一般に、JSON形式のドキュメントはTXTにあり、XMLは標準になります。
JSONオンライン編集者:http://tools.vevb.com/tools/json/json_editor.htm
2。JSONデータ構造
JSONには2つのデータ構造があります。
(1)オブジェクトとも呼ばれるマップ。 {......}
(2)配列; [......]
つまり、すべてのJSONオブジェクトはこれらの形式で表現する必要があります。
1.マップ
簡単に言えば、それはJavaの地図です。 Name-Valueペアが与えられ、名前と値は「:」で区切られ、2つのマップは「」で区切られています。一般的な表現は次のとおりです。
{'key1': 'value1'、 'key2': 'value2'}
以下は公式のウェブサイトの写真です:
2.アレイ
それは通常の意味での配列であり、一般的な形式は次のとおりです。
['arr1'、 'arr2'、 'arr3'];
以下は公式のウェブサイトの写真です:
図の値は次のとおりです。
要約:
(1)JSONには2種類のデータ構造のみがあります。
(2)オブジェクトは配列にネストできるなど、ネストできます。
(3)覚えておいてください:オブジェクトは{}で表され、配列は[]で表されます。
3。JSONおよびXML変換の例
上記のXMLは、JSONパッケージに変換できます。
1。単純なXML
XML形式:
<inear> <name> xiazdong </name> <age> 20 </age> </person>
JSON形式:
{"name": "xiazdong"、 "age":20}2。複雑なXML
XML形式:
<section> <title> book </title> <signing> <著者名= "著者1"/> <book価格= "$ 11"/> </signible> <single> <sing> <著者名= "著者2"/> <book価格= "$ 22"/> </siging> </section> </section
JSON形式:
"section": "book"、 "signing":[{<span style = "white-space:pre"> </span> "著者":{"name": "著者1":{book ":{" book1 ":" book1 ":" book ":" $ 11 "}}、 「価格」:「$ 22 "}} <span style ="白い空間:pre "> </span>]}}注:XMLのプロパティは、JSONのマップでも表されます。
4。JSONパッケージ
JSONパッケージを使用する場合は、JSONパッケージのソースコードをダウンロードして、これらのコードをEclipseプロジェクトに追加して呼び出すことができます。
APIドキュメントをご覧になりたい場合は、http://www.json.org/java/index.htmlをご覧ください。
JSONパッケージで最も一般的に使用される2つのクラスは、それぞれ2つのデータ構造を表すJSonObjectとJSonarrayです。
1。JsonObjectコードインスタンス
パッケージcom.xiazdong.json; import weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; public class test {public static void main(string [] args)スロー例外{jsonobject jsonobj = new jsonobject( "{'name': 'xiazdong'、 'age':20}");文字列名= jsonobj.getString( "name"); int age = jsonobj.getint( "age"); System.out.println(name+":"+age); }}2。JsonArrayコードインスタンス
jsonarray array = new jsonarray(string str); //文字列をjsonarrayint length = array.length()に変換します。 //配列の長さを返します。
パッケージcom.xiazdong.json; import weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; public class test {public static void main(string [] args)スロー例外{jsonarray jsonarray = new jsonarray( "[{'name': 'xiazdong'、 'age':20}、{'name': 'xzdong'、 'age':15}]"); for(int i = 0; i <jsonarray.length(); i ++){string name = jsonarray.getjsonobject(i).getString( "name"); int age = jsonarray.getjsonobject(i).getint( "age"); System.out.println( "name ="+name); System.out.println( "age ="+age); }}} 3。ネストされたJSonObjectおよびJSonArrayコードインスタンス
パッケージcom.xiazdong.json; import weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; public class test {public static void main(string [] args)スロー例外{string str = "{'name': 'xiazdong'、 'age': 'book':['book1'、 'book2']"; jsonObject obj = new JSonObject(str); system.out.println(obj.getjsonarray( "book")。getString(0)); }}4。JSonstringerコードの例
JSonstringerを使用して、JSON形式のテキストをすばやく構築して、ファイルに書き込むことができる文字列に変換できます。
JSonstringerはJsonWriterのサブクラスです。
jsonstringerは通常、object()。key()。value()。key()。value()。endobject()を介して構築されます。
object()は、オブジェクトが起動されていること、つまり、{;を追加することを示します。
endObject()は、オブジェクトが終了したこと、つまり追加}を示します。
array()は、配列が起動されていること、つまり[;
Endarray()は、配列が終了したこと、つまり追加]を示します。
key()は、キーを追加することを意味します。
値()とは、値を追加することを意味します。
パッケージcom.xiazdong.json; import weibo4j.org.json.jsonstringer;パブリッククラスjsonstringringerdemo {public static void main(string [] args)スロー例外{jsonstringer stringer = new jsonstringer(); string str = stringer.object()。key( "name")。value( "xiazdong")。key( "age")。value(20).endobject()。toString(); System.out.println(str); }}複雑なJSON形式の書き込み
パッケージcom.xiazdong.json; java.io.fileをインポートします。 java.io.filereaderをインポートします。 import weibo4j.org.json.jsonarray; import weibo4j.org.json.jsonobject; import weibo4j.org.json.jsonstringer; import weibo4j.org.json.jsonstringer; weibo4j.org.json.jsontkenerをインポートします。パブリッククラスjsonstringerdemo {public static void main(string [] args)throws exception {jsonstringer js = new jsonstringer(); jsonobject obj2 = new jsonobject(); jsonobject obj3 = new jsonobject(); jsonobject obj4 = new jsonobject(); obj4.put( "title"、 "book1")。put( "price"、 "$ 11"); obj3.put( "book"、obj4); obj3.put( "author"、new jsonobject()。put( "name"、 "Author-1")); jsonobject obj5 = new jsonobject(); jsonobject obj6 = new jsonobject(); obj6.put( "title"、 "book2")。put( "price"、 "$ 22"); obj5.put( "book"、obj6); obj5.put( "Author"、new jsonobject()。put( "name"、 "author-2")); jsonarray obj7 = new jsonarray(); obj7.put(obj3).put(obj5); obj2.put( "title"、 "book"); obj2.put( "signing"、obj7); js.object()。key( "session")。value(obj2).endobject(); system.out.println(js.toString()); printwriter out = new PrintWriter(new FileOutputStream(1.TXT)); out.println(js.ToString()); }}上記のコードは、次のJSON形式を生成します。
{"section":{ "title":"BOOK", "signing":[ { "author": { "name":"author-1" }, "book": { "title":"book1", "price":"$11" } }, { "author": { "name":"author-2" }, "book": { "title":"book2", "price":"$22" } } ]} }}5.Jsontokenerコードの例
JSontokenerは、JSON形式のファイルを読み取るために使用されます。
jsonobject obj = new jsonobject(new jsontokener(java.io.reader));ファイルからjsonobjectを読むことができます。
jsonarray obj = new jsonarray(new jsonarray(java.io.reader));ファイルからjsonarrayを読むことができます。
{'name': 'xiazdong'、 'book':['book1'、 'book2']}パッケージcom.xiazdong.json; java.io.fileをインポートします。 java.io.filereaderをインポートします。 import weibo4j.org.json.jsonobject; import weibo4j.org.json.jsontokener;パブリッククラスjsonstringerdemo {public static void main(string [] args)throws exception {jsonobject obj = new jsonobject(new jsontokener(new file( "1.txt")))); system.out.println(obj.getjsonarray(obj.getjsonarray( "book")。複雑なJSON形式でコードを読む:
{"section":{ "title":"BOOK", "signing":[ { "author": { "name":"author-1" }, "book": { "title":"book1", "price":"$11" } }, { "author": { "name":"author-2" }, "book": { "title":"book2", "price":"$22" } } ]} }}パッケージcom.xiazdong.json; java.io.fileをインポートします。 java.io.filereaderをインポートします。 import weibo4j.org.json.jsonobject; import weibo4j.org.json.jsontokener;パブリッククラスjsonstringerdemo {public static void main(string [] args)throws exception {jsonobject obj = new jsonobject(new jsonokener(new filereader(new file( "1.txt"))))); System.out.println(obj.getjsonobject( "section")。getjsonarray( "signing")。getjsonobject( "author")。getString( "name"));要約:
1 Javaでは、JSON形式の文字列は、単一の引用で最もよく表されます。
2。jsonobject+jsontokenerを使用して、json形式のファイルオブジェクトを読み取ります。
3。PrintWriter+JSonstringerを使用してJSONファイルを書きます。
注:私はもともとJsonWriterと一緒に書きたいと思っていたので、成功していませんでした。したがって、jsonstringer+printwriterを使用して書くことができます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。