JSON數(shù)據(jù)現(xiàn)在是我們開發(fā)中用的最多的,大多數(shù)數(shù)據(jù)都是通過JSON方式進行傳輸并進行解析,這樣可以提高工作效率,那json數(shù)組怎么解析?下面來我們就來給大家講解一下。
package com.example.z111505; import java.io.IOException; import java.io.InputStream; import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; import android.os.Bundle; import android.support.v7.app.ActionBarActivity; import android.util.Log; import android.widget.TextView; import android.widget.Toast; public class MainActivity extends ActionBarActivity { TextView text; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); text = (TextView) findViewById(R.id.mytxt); // //將文件轉化為流 //InputStream inputStream=getResources().openRawResource(R.raw.j111502); ////input:輸入流 //byte[] ppp; //try { // ppp = new byte[inputStream.available()]; // inputStream.read(ppp); // String ttt=new String(ppp); // // inputStream.close(); // text.setText(ttt); // //2. String ttt 取出value // // 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(); // //-----解析json數(shù)組 // // //} catch (IOException e) { // // TODO Auto-generated catch block // e.printStackTrace(); //} catch (JSONException e) { // // TODO Auto-generated catch block // e.printStackTrace(); //} // // //====解析json數(shù)組 InputStream inputStream = getResources() .openRawResource(R.raw.j111503); //把raw文件下的j111503文件下的所有內容變成輸入流 try { //inputStream.available() 流的可利用長度 byte pp[] = new byte[inputStream.available()]; //根據(jù)流的可利用長度轉化為字節(jié)數(shù)組 inputStream.read(pp); //將流里的數(shù)據(jù)讀到pp字節(jié)數(shù)組里 inputStream.close(); // 流中的資源使用完 關閉留 String tt = new String(pp); //將byte字節(jié)數(shù)組轉成字符串 //如果是亂碼 則String tt=new String(pp,"utf-8");或者gbk //如果實現(xiàn)不了 將json文件中的分號改為英文的逗號 Log.e("aaaa", tt); JSONArray array = new JSonArray(tt); //將字符串轉成json數(shù)組 for (int i = 0; i < array.length(); i++) { < p = "" > String b0 = array.getString(i); //從數(shù)組里取出數(shù)組 Log.e("aaaa", b0); } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } } }
補充步驟:解析帶中括號的{}
第一步:將文件轉化為輸入流,并將輸入流存儲到字節(jié)數(shù)組里 關閉流
InputStream inputStream = getResources() .openRawResource(R.raw.j111502); byte[] ppp = new byte[inputStream.available] //根據(jù)流的可利用長度轉化為字節(jié)數(shù)組 inputStream.read(pp); //將流里的數(shù)據(jù)讀到pp字節(jié)數(shù)組里 inputStream.close();
第二步:將字節(jié)數(shù)組轉化為字符串,
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();
第二種解析解析數(shù)組[]
前幾個步驟都一樣只有最后一個步驟不一樣
第三步:將得到的數(shù)據(jù)保存到jsonarray里面,用循環(huán)的方式讀取出來
JSONArray array = new JSonArray(tt); //將字符串轉成json數(shù)組 for (int i = 0; i < array.length(); i++) { < p = "" > String b0 = array.getString(i); //從數(shù)組里取出數(shù)組 Log.e("aaaa", b0); }
json數(shù)組解析方法就是以上這些,json解析是開發(fā)中最重要的,畢竟開發(fā)中大多數(shù)數(shù)據(jù)都要經(jīng)過json解析,從而提高效率。最后大家如果想要了解更多json工具教程知識,敬請關注賦能網(wǎng)。
本文鏈接:
本文章“jon數(shù)組怎么解析?jon數(shù)組解析方法”已幫助 67 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產(chǎn)權侵權的法律責任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579