1 package com.example.z111505; 2 3 import java.io.IOException; 4 import java.io.InputStream; 5 6 import org.json.JSONArray; 7 import org.json.JSONException; 8 import org.json.JSONObject; 9 10 import android.os.Bundle; 11 import android.support.v7.app.ActionBarActivity; 12 import android.util.Log; 13 import android.widget.TextView; 14 import android.widget.Toast; 15 16 17 public class MainActivity extends ActionBarActivity { 18 19 TextView text; 20 @Override 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_main); 24 text=(TextView) findViewById(R.id.mytxt); 25 // 26 //將文件轉化為流 27 //InputStream inputStream=getResources().openRawResource(R.raw.j111502); 28 ////input:輸入流 29 //byte[] ppp; 30 //try { 31 // ppp = new byte[inputStream.available()]; 32 // inputStream.read(ppp); 33 // String ttt=new String(ppp); 34 // 35 // inputStream.close(); 36 // text.setText(ttt); 37 // //2. String ttt 取出value 38 // 39 // JSONObject jsonObject = new JSONObject(ttt); 40 // String ggg=jsonObject.getString("ttt"); 41 // String gg2=jsonObject.getString("hhhh"); 42 // Toast.makeText(MainActivity.this, ggg, 1).show(); 43 //// Toast.makeText(MainActivity.this, gg2, 1).show(); 44 // //-----解析json數組 45 // 46 // 47 //} catch (IOException e) { 48 // // TODO Auto-generated catch block 49 // e.printStackTrace(); 50 //} catch (JSONException e) { 51 // // TODO Auto-generated catch block 52 // e.printStackTrace(); 53 //} 54 // 55 // 56 //====解析json數組 57 InputStream inputStream=getResources().openRawResource(R.raw.j111503); 58 //把raw文件下的j111503文件下的所有內容變成輸入流 59 try { 60 //inputStream.available() 流的可利用長度 61 byte pp[]=new byte[inputStream.available()]; 62 //根據流的可利用長度轉化為字節數組 63 inputStream.read(pp); 64 //將流里的數據讀到pp字節數組里 65 66 inputStream.close(); 67 // 流中的資源使用完 關閉留 68 String tt=new String(pp); 69 //將byte字節數組轉成字符串 70 //如果是亂碼 則String tt=new String(pp,"utf-8");或者gbk 71 //如果實現不了 將json文件中的分號改為英文的逗號 72 Log.e("aaaa", tt); 73 JSONArray array=new JSONArray(tt); 74 //將字符串轉成json數組 75 for(int i=0;i<array.length();i++){ 76 77 String b0=array.getString(i); 78 //從數組里取出數組 79 Log.e("aaaa", b0); 80 } 81 } catch (IOException e) { 82 // TODO Auto-generated catch block 83 e.printStackTrace(); 84 } catch (JSONException e) { 85 // TODO Auto-generated catch block 86 e.printStackTrace(); 87 } 88 } 89 90 91 }
補充步驟:解析帶中括號的{}
第一步:將文件轉化為輸入流,並將輸入流存儲到字節數組里 關閉流
InputStream inputStream=getResources().openRawResource(R.raw.j111502);
byte[] ppp=new byte[inputStream.available]
//根據流的可利用長度轉化為字節數組
inputStream.read(pp);
//將流里的數據讀到pp字節數組里
inputStream.close();
第二步:將字節數組轉化為字符串,
String ttt=new String(ppp);
第三步:用jsonobject的方式取出字符,並顯示
JSONObject jsonObject = new JSONObject(ttt); String ggg=jsonObject.getString("ttt"); String gg2=jsonObject.getString("hhhh"); Toast.makeText(MainActivity.this, ggg, 1).show(); Toast.makeText(MainActivity.this, gg2, 1).show();
第二種解析解析數組[]
前幾個步驟都一樣只有最后一個步驟不一樣
第三步:將得到的數據保存到jsonarray里面,用循環的方式讀取出來
JSONArray array=new JSONArray(tt); //將字符串轉成json數組 for(int i=0;i<array.length();i++){ String b0=array.getString(i); //從數組里取出數組 Log.e("aaaa", b0); }
ps:在Android方面是一個新手這是為了給我自己做一個筆記,如果有錯誤的話請各位大神指出謝謝。
鏈接:http://pan.baidu.com/s/1nuZM6t7 密碼:0tah