最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例

 更新時(shí)間:2016年03月22日 16:36:52   作者:chenlijian  
這篇文章主要介紹了Android App中讀取XML與JSON格式數(shù)據(jù)的基本方法示例,Android中自帶的JSONObject非常好用,需要的朋友可以參考下

XML
假如有這樣一個(gè)XML格式的數(shù)據(jù):

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
<customer name="luopeng" age="21" gender="1"   emial="dylankeepmoving@163.com"/> 
<customer name="dylan" age="22" gender="2" emial="710097663@qq.com"/> 
<customer name="android" age="6" gender="2" emial="android@gmail.com"/> 
</resources>

下面我們來編寫一個(gè)類來讀取,此類的作用是點(diǎn)擊按鈕后在EditView上顯示資源文件(一個(gè)XML)中的內(nèi)容,此例中會(huì)使用到XMLResourceParser

public class TestXmlResourceParserActivity extends Activity { 
private EditText et; 
private Button myButton; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
  super.onCreate(savedInstanceState); 
  setContentView(R.layout.main); 

  // 變量在內(nèi)部類中使用的前提是此變量必須是final修飾的 
  myButton = (Button) this.findViewById(R.id.btn01); 
  et = (EditText) this.findViewById(R.id.edittext01); 
  myButton.setOnClickListener(new OnClickListener() { 
    StringBuilder sb = new StringBuilder(""); 
    Resources res = getResources(); 
    XmlResourceParser xrp = res.getXml(R.xml.test); 

    @Override 
    public void onClick(View v) { 
      int counter = 0; 
      try { 
        // 判斷是否到了文件的結(jié)尾 
        while (xrp.getEventType() != XmlResourceParser.END_DOCUMENT) { 
          //文件的內(nèi)容的起始標(biāo)簽開始,注意這里的起始標(biāo)簽是test.xml文件里面<resources>標(biāo)簽下面的第一個(gè)標(biāo)簽 
          if (xrp.getEventType() == XmlResourceParser.START_TAG) { 
            String tagname = xrp.getName(); 
            if (tagname.endsWith("customer")) { 
              counter++; 
              sb.append("這是第" + counter + "客戶"+"\n"); 
              sb.append("姓名:"+xrp.getAttributeValue(0)+"\n"); 
              sb.append("年齡:"+xrp.getAttributeValue(1)+"\n"); 
              sb.append("性別:"+xrp.getAttributeValue(2)+"\n"); 
              sb.append("郵箱:"+xrp.getAttributeValue(3)+"\n\n"); 
            } 
          } 
          xrp.next(); 
        } 
        et.setText(sb.toString()); 
      } catch (XmlPullParserException e) { 
      } catch (IOException e) { 
        e.printStackTrace(); 
      } 
    } 
  }); 
}

JSON
創(chuàng)建JSON數(shù)據(jù)

try {
    //首先創(chuàng)建對(duì)象中的一個(gè)單個(gè)鍵值對(duì)
    JSONObject root = new JSONObject();
    root.put("cat", "it");
    //另一個(gè)鍵值對(duì)的值是一個(gè)數(shù)組,數(shù)組里裝了3個(gè)JSON對(duì)象,所以再分別搞3個(gè)JSONObject對(duì)象存放鍵值對(duì)
    JSONObject lan1 = new JSONObject();
    lan1.put("id", "1");
    lan1.put("ide", "Eclipse");
    lan1.put("name","Java");
    JSONObject lan2 = new JSONObject();
    lan2.put("id", "2");
    lan2.put("ide", "XCode");
    lan2.put("name","Swift");
    JSONObject lan3 = new JSONObject();
    lan3.put("id", "2");
    lan3.put("ide", "Visual Studio");
    lan3.put("name","C#");
    //在將這3個(gè)對(duì)象存入一個(gè)數(shù)組
    JSONArray array = new JSONArray();
    array.put(lan1);
    array.put(lan2);
    array.put(lan3);
    //再將數(shù)組作為鍵"languages"的值,構(gòu)成一個(gè)對(duì)象
    root.put("languages", array);
    //本例中只將內(nèi)容輸出出來
    System.out.println(root.toString());

  } catch (JSONException e) {
    e.printStackTrace();
  }

讀取JSON數(shù)據(jù)
assets/test.json

{
  "languages":[
    {"id":1,"ide":"Eclipse","name":"Java"},
    {"id":2,"ide":"XCode","name":"Swift"},
    {"id":3,"ide":"Visual Studio","name":"C#"},
  ],
  "cat","it"
}
try {
    InputStream is = getResources().getAssets().open("test.json");
    InputStreamReader isr = new InputStreamReader(is, "UTF-8");
    BufferedReader br = new BufferedReader(isr);
    //將文本中的數(shù)據(jù),都讀取到一個(gè)StringBuilder當(dāng)中
    String line;
    StringBuilder builder = new StringBuilder();
    while((line=br.readLine()) != null ){
      builder.append(line);
    }
    br.close();
    isr.close();

    JSONObject root = new JSONObject(builder.toString());
    //根據(jù)鍵,獲得鍵對(duì)應(yīng)的值,由于值是String類型,所以用getString
    System.out.println("cat="+root.getString("cat"));
    //根據(jù)鍵,獲得鍵對(duì)應(yīng)的數(shù)組,由于值是一個(gè)數(shù)組,所以用getJSONArray
    JSONArray array = root.getJSONArray("languages");
    //由于要遍歷數(shù)組,所以創(chuàng)建一個(gè)for循環(huán)
    for(int i=0; i < array. length(); i++){
      //由于每一個(gè)數(shù)組當(dāng)中的元素,也是一個(gè)新的JSON對(duì)象
      JSONObject lan = array.getJSONObject(i);
      System.out.println("-------------------");
      System.out.println("id="+lan.getInt("id"));
      System.out.println("ide="+lan.getString("name"));
      System.out.println("name="+lan.getString("name"));
      Log.i("tag","-------");
    }

  } catch (IOException e) {
    e.printStackTrace();
  } catch (JSONException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
  }

   

相關(guān)文章

  • 幾個(gè)Android編程時(shí)需要注意的 web 問題

    幾個(gè)Android編程時(shí)需要注意的 web 問題

    這篇文章主要介紹了幾個(gè)Android編程時(shí)需要注意的 web 問題,需要的朋友可以參考下
    2014-12-12
  • Android開發(fā)中WebView的詳細(xì)使用方法和常見操作

    Android開發(fā)中WebView的詳細(xì)使用方法和常見操作

    這篇文章詳細(xì)介紹了Android中WebView組件的使用方法和常見操作,包括基本初始化、啟用JavaScript、處理頁面導(dǎo)航、與JavaScript交互、加載本地HTML內(nèi)容、文件上傳與下載、進(jìn)度條與加載指示、處理網(wǎng)頁錯(cuò)誤以及安全性設(shè)置,需要的朋友可以參考下
    2024-11-11
  • Android開發(fā)實(shí)例之多點(diǎn)觸控程序

    Android開發(fā)實(shí)例之多點(diǎn)觸控程序

    本文主要介紹 Android開發(fā)多點(diǎn)觸控,這里提供了詳細(xì)的資料和示例代碼,以及實(shí)現(xiàn)效果圖,有開發(fā)Android應(yīng)用需要這樣的功能的小伙伴可以參考下
    2016-08-08
  • Android 藍(lán)牙開發(fā)實(shí)例解析

    Android 藍(lán)牙開發(fā)實(shí)例解析

    本文主要介紹Android 藍(lán)牙開發(fā),這里提供實(shí)例代碼和詳細(xì)解析實(shí)現(xiàn)方法,對(duì)開發(fā)Android藍(lán)牙開發(fā)的朋友提供簡(jiǎn)單示例,有需要的朋友可以參考下
    2016-08-08
  • Kotlin入門教程之開發(fā)環(huán)境搭建

    Kotlin入門教程之開發(fā)環(huán)境搭建

    最近kotlin大熱,Kotlin作為 Android 領(lǐng)域的 Swift,絕對(duì)讓你如沐春風(fēng),下面這篇文章主要給大家介紹了關(guān)于Kotlin入門教程之開發(fā)環(huán)境搭建的相關(guān)資料,文中將實(shí)現(xiàn)的方法一步步介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-10-10
  • 理解關(guān)于Android系統(tǒng)中輕量級(jí)指針的實(shí)現(xiàn)

    理解關(guān)于Android系統(tǒng)中輕量級(jí)指針的實(shí)現(xiàn)

    由于android系統(tǒng)底層的很大的一部分是用C++實(shí)現(xiàn)的,C++的開發(fā)就難免會(huì)使用到指針的這個(gè)知識(shí) 點(diǎn)。而C++的難點(diǎn)和容易出問題的也在于指針。使用指針出錯(cuò),常常會(huì)引發(fā)帶來對(duì)項(xiàng)目具有毀滅性的錯(cuò)誤,內(nèi)存泄漏、邏輯錯(cuò)誤、系統(tǒng)崩潰
    2021-10-10
  • Android動(dòng)畫之漸變動(dòng)畫(Tween Animation)詳解 (漸變、縮放、位移、旋轉(zhuǎn))

    Android動(dòng)畫之漸變動(dòng)畫(Tween Animation)詳解 (漸變、縮放、位移、旋轉(zhuǎn))

    這篇文章主要介紹了Android動(dòng)畫之漸變動(dòng)畫(Tween Animation)用法,結(jié)合實(shí)例形式詳細(xì)分析了Android漸變動(dòng)畫Tween Animation實(shí)現(xiàn)漸變,縮放,位移,旋轉(zhuǎn)等技巧,需要的朋友可以參考下
    2016-01-01
  • Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能

    Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能

    Android內(nèi)部沒有控件來直接顯示文檔,跳轉(zhuǎn)WPS或其他第三方文檔App體驗(yàn)性不好,使用騰訊X5內(nèi)核能很好的解決的這一問題這篇文章主要介紹了Android集成騰訊X5實(shí)現(xiàn)文檔瀏覽功能,需要的朋友可以參考下
    2019-10-10
  • eclipse中運(yùn)行monkeyrunner腳本之環(huán)境搭建(4)

    eclipse中運(yùn)行monkeyrunner腳本之環(huán)境搭建(4)

    這篇文章主要為大家詳細(xì)介紹了eclipse中運(yùn)行monkeyrunner腳本之環(huán)境搭建的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-12-12
  • Android使用SimpleDateFormat警告介紹

    Android使用SimpleDateFormat警告介紹

    大家好,本篇文章講的是Android使用SimpleDateFormat警告介紹,感興趣的同學(xué)快來看一看吧,希望對(duì)你起到幫助
    2021-11-11

最新評(píng)論

石狮市| 调兵山市| 车险| 申扎县| 德兴市| 龙泉市| 都江堰市| 虎林市| 屏东市| 吴堡县| 惠来县| 固镇县| 河北区| 旅游| 宁明县| 冀州市| 信阳市| 延长县| 江华| 淮滨县| 左权县| 长乐市| 钟山县| 永寿县| 弥渡县| 阜康市| 噶尔县| 吉隆县| 富民县| 麻阳| 泸州市| 九龙坡区| 华坪县| 广东省| 七台河市| 凉城县| 嘉义县| 永善县| 萍乡市| 南和县| 水城县|