【18】JSON解析

2352 ワード

一、JSONとは何ですか。


JSONはコンパクトなデータストレージ伝達方式で、現在使用されているのは比較的に多く、主に彼が機械に対してもっと最適化しているため、データはXMLに比べてもっと小さく、モバイルインターネットのデータメッセージ伝達に有利である.

二、なぜJSONを使うのか


XMLと比べると、JSONは機械の読み取りや使用に有利で、ネット上にはJSONデータをjavabean類に直接変換できるツールがたくさんあり、機械に近い考え方で、XMLは人に近い読み方で、二JSONは機械に近い読み方だと言えます.

三、JSONデータの解析方法


1.JSOnObject解析


JSONObjectはアンドロイドが持っているツール類で、比較的簡単なJSONデータを簡単に解析できます.
スタートコード
InputStream is = getResources().openRawResource(R.raw.apps);
try {
    String jsonString = getJsonString(is);
    JSONArray jsonArray = new JSONArray(jsonString);
    for(int i=0;i

簡単すぎて言いたくない、そういうことでしょう.の
getJsonString()メソッド
private String getJsonString(InputStream is) throws IOException {
    BufferedReader reader = new BufferedReader(new InputStreamReader(is));
    StringBuffer stringBuffer = new StringBuffer();
    String str = null;
    while((str=reader.readLine())!=null){
        stringBuffer.append(str);
    }
    return  stringBuffer.toString();
}

httpリクエストを解析して得られたデータと似ています.

2.GSON解析


GSONは有名なグーグル社が出したJSONデータを解析する専門のツールパッケージで、JSONデータとJavaBean類を直接関連付けて、それから操作類の方式で、JSONデータを操作して、まるで友达がいないほどキックアスです.
次のコードです.
InputStream is = getResources().openRawResource(R.raw.apps);
String jsonData = getJsonData(is);

List appDataList = gson.fromJson(jsonData,new TypeToken>(){}.getType());
for(AppData appData : appDataList){
    Log.i("info", "id = " + appData.getId());
    List versionList = appData.getVersionList();
    for(int i=0; i

getJsonData()メソッドは上記と似ているので貼らない.
ここで配列を解析するので
new TypeToken>(){}.getType()

配列のタイプを取得し、個別のクラスであれば、直接クラス名を取得します.class、使い勝手もとても便利です.
下から上へのJSONデータ自動生成JavaBeanツールを強力に推奨し、退屈な重複労働を撲滅します.
またTMは何も言うことがないようですが、そうしましょう.