JSON數(shù)據(jù)現(xiàn)在是我們開(kāi)發(fā)中用的最多的,大多數(shù)數(shù)據(jù)都是通過(guò)JSON方式進(jìn)行傳輸并進(jìn)行解析,這樣可以提高工作效率,那json數(shù)組怎么解析?下面來(lái)我們就來(lái)給大家講解一下。
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); // //將文件轉(zhuǎn)化為流 //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文件下的所有內(nèi)容變成輸入流 try { //inputStream.available() 流的可利用長(zhǎng)度 byte pp[] = new byte[inputStream.available()]; //根據(jù)流的可利用長(zhǎng)度轉(zhuǎn)化為字節(jié)數(shù)組 inputStream.read(pp); //將流里的數(shù)據(jù)讀到pp字節(jié)數(shù)組里 inputStream.close(); // 流中的資源使用完 關(guān)閉留 String tt = new String(pp); //將byte字節(jié)數(shù)組轉(zhuǎn)成字符串 //如果是亂碼 則String tt=new String(pp,"utf-8");或者gbk //如果實(shí)現(xiàn)不了 將json文件中的分號(hào)改為英文的逗號(hào) Log.e("aaaa", tt); JSONArray array = new JSonArray(tt); //將字符串轉(zhuǎn)成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(); } } }
補(bǔ)充步驟:解析帶中括號(hào)的{}
第一步:將文件轉(zhuǎn)化為輸入流,并將輸入流存儲(chǔ)到字節(jié)數(shù)組里 關(guān)閉流
InputStream inputStream = getResources() .openRawResource(R.raw.j111502); byte[] ppp = new byte[inputStream.available] //根據(jù)流的可利用長(zhǎng)度轉(zhuǎn)化為字節(jié)數(shù)組 inputStream.read(pp); //將流里的數(shù)據(jù)讀到pp字節(jié)數(shù)組里 inputStream.close();
第二步:將字節(jié)數(shù)組轉(zhuǎn)化為字符串,
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ù)組[]
前幾個(gè)步驟都一樣只有最后一個(gè)步驟不一樣
第三步:將得到的數(shù)據(jù)保存到j(luò)sonarray里面,用循環(huán)的方式讀取出來(lái)
JSONArray array = new JSonArray(tt); //將字符串轉(zhuǎn)成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解析是開(kāi)發(fā)中最重要的,畢竟開(kāi)發(fā)中大多數(shù)數(shù)據(jù)都要經(jīng)過(guò)json解析,從而提高效率。最后大家如果想要了解更多json工具教程知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。
本文鏈接:
本文章“jon數(shù)組怎么解析?jon數(shù)組解析方法”已幫助 67 人
免責(zé)聲明:本信息由用戶(hù)發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!
本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢(xún)熱線:4008-569-579