JSON解析とXML解析の違い比較
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元データ:
XML元データ:
これで、JSON解析とXML解析がほぼ完了しました。
上記はJSON解析とXML解析の違いを紹介しました。皆さんの助けになりたいです。もし何か質問がありましたら、メッセージをください。ここでも私たちのサイトを応援してくれてありがとうございます。
まず、データ解析は、データの各値を取得するためのものであり、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解析の違いを紹介しました。皆さんの助けになりたいです。もし何か質問がありましたら、メッセージをください。ここでも私たちのサイトを応援してくれてありがとうございます。