JSON解析とXML解析の違い比較

7238 ワード

JSON解析とXML解析は比較的一般的な2つの解析方式であり、その中でJSON解析の市場点数はもっと大きい。本論文のシステムの解析の2つの解析方式の違いは、データをより良く処理するために準備されている。現在の段階では主にモバイル開発を行っていますので、本明細書で説明したJSON解析とXML解析はAndroid環境の下でテストされます。
まず、データ解析は、データの各値を取得するためのものであり、JSONデータにとってキーパッドのペアと似た形であり、XMLにとってはラベルと値の形式であることを明確にします。簡単に言えば、JSONデータまたはXMLデータの中でキーまたはラベルを使って対応する値を見つけます。
次に二つのデータのデータ構造を調べます。JSONデータは3種類に分けられます。オブジェクトタイプ、配列タイプ、ミックスタイプ。オブジェクトタイプJSONデータは大括弧で包まれ、属性と値が対応します。配列タイプJSONデータは、複数のオブジェクトタイプJSONデータを組み合わせて、中かっこで包むものとして見られます。混合タイプJSONデータには、オブジェクトタイプと配列タイプがあり、大かっこはオブジェクト、中かっこは配列を表します。XMLデータはラベルとして保存され、ラベル名で取得されます。したがって、JSON解析であれ、XML解析であれ、データを保存するために、まず二列集合を定義することができる。
JSONデータタイプ:

Android環境下でJSONデータを解析する方法は二つあります。一つはカスタム方法でデータ構造に従って階層的に解析し、もう一つはオープンソースフレームを使用します。独自の方法で解析すると、オブジェクト解析、配列解析、総合解析に分類できます。オブジェクト解析は比較的簡単で、まずJSONオブジェクトを作成し、対象のGetXxx()の方法で対応する値を取得し、その後、集合に格納し、即ちJSONデータを取得する。配列解析は、まずJsonArayオブジェクトからJSONオブジェクトを取得し、オブジェクト解析の方法を参照します。総合解析は上記の二つの解析に基づいて行われます。JSONデータの構造により、JSONオブジェクトとJSOArayオブジェクトを順次取得し、必要なデータが得られたことを知る。オープンソースフレームで解析の基本原理が似ていますが、リードパックを事前に行い、パッケージの内容を呼び出すための方法クラスを作成する必要があります。
オブジェクトタイプのJSONデータを読みだします。

配列タイプのJSONデータを読みだします。

総合タイプのJSONデータを読みだします。

JSONデータのディレクトリ構造をオープンソースフレームで読みだします。

XML解析は読みながら解析する方法が固定されています。上から下まで順次解析します。まず、XmlPullPaser解析器を作成し、解析するストリームオブジェクトを解析器で設定します。それから、ラベルの種類を一つのサイクルで判断します。ファイルの終了フラグ(END_u)に会ったら、DOCUMENT)ラベルがサイクルから外れます。そうでないとサイクルに入ります。ループの中には2つのケースがあります。スタートラベル(START_)TAG)は、ラベルの内部に入り、ラベル名に基づいて取得すべきデータを判断し、署名と取得すべきデータ名を同時にnextText()でデータを取得する。終了ラベル(END_)ならTAG)取得したデータをセットに保存します。最後に、ラベルを次の位置に移すことを忘れないでください。すなわち、type=parser.next()。
XML解析の方法コード:

より良いデモンストレーション効果のために、本論文で最終的に作成された事例は、AndroidデバイスでTomcatサーバからJSONデータとXMLデータを取得し、解析した結果をAndroidデバイスに展示します。
JSON元データ:

{
"resultcode": "200",
"reason": "    !",
"result": {
"sk": { 
"temp": "21", 
"wind_direction": "  ", 
"wind_strength": "2 ", 
"humidity": "4%", 
"time": "14:25" 
},
"today": {
"city": "  ",
"date_y": "2014 03 21 ",
"week": "   ",
"temperature": "8℃~20℃", 
"weather": "   ", 
"weather_id": { 
"fa": "00", 
"fb": "53" 
},
"wind": "     ",
"dressing_index": "  ", 
"dressing_advice": "     、      、     。", 
"uv_index": "  ", 
"comfort_index": "", 
"wash_index": "   ", 
"travel_index": "  ", 
"exercise_index": "   ", 
"drying_index": "" 
},
"future": [ 
{
"temperature": "28℃~36℃",
"weather": "    ",
"weather_id": {
"fa": "00",
"fb": "01"
},
"wind": "  3-4 ",
"week": "   ",
"date": "20140804"
},
{
"temperature": "28℃~36℃",
"weather": "    ",
"weather_id": {
"fa": "00",
"fb": "01"
},
"wind": "   3-4 ",
"week": "   ",
"date": "20140805"
},
{
"temperature": "27℃~35℃",
"weather": "    ",
"weather_id": {
"fa": "00",
"fb": "01"
},
"wind": "   3-4 ",
"week": "   ",
"date": "20140806"
},
{
"temperature": "27℃~34℃",
"weather": "  ",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "   3-4 ",
"week": "   ",
"date": "20140807"
},
{
"temperature": "27℃~33℃",
"weather": "  ",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "   4-5 ",
"week": "   ",
"date": "20140808"
},
{
"temperature": "26℃~33℃",
"weather": "  ",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "  4-5 ",
"week": "   ",
"date": "20140809"
},
{
"temperature": "26℃~33℃",
"weather": "  ",
"weather_id": {
"fa": "01",
"fb": "01"
},
"wind": "  4-5 ",
"week": "   ",
"date": "20140810"
}
]
},
"error_code": 0
}
その中の「future」データを解析した結果、以下のようになりました。

XML元データ:

<?xml version="1.0" encoding="UTF-8" ?> 
<channel>
<item>
<title>      </title> 
<description>           ,  ,  , ,    。
</description>
<image>http://192.168.1.103:8080/img/a.jpg</image>
<type>1</type>
<comment>163</comment>
</item>
<item>
<title>           </title> 
<description>           ,         
</description>
<image>http://192.168.1.103:8080/img/b.jpg</image>
<type>2</type>
</item>
<item>
<title>   “   ”     </title> 
<description>  :     ,   “   ”     ,         </description>
<image>http://192.168.1.103:8080/img/c.jpg</image>
<type>3</type>
</item>
<item>
<title>           </title> 
<description>   :   ,           
</description>
<image>http://192.168.1.103:8080/img/d.jpg</image>
<type>1</type>
<comment>763</comment>
</item>
</channel>
解析後の成果表示:

これで、JSON解析とXML解析がほぼ完了しました。
上記はJSON解析とXML解析の違いを紹介しました。皆さんの助けになりたいです。もし何か質問がありましたら、メッセージをください。ここでも私たちのサイトを応援してくれてありがとうございます。