栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 移动开发 > Android

Android App中读取XML与JSON格式数据的基本方法示例

Android 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Android App中读取XML与JSON格式数据的基本方法示例

XML
假如有这样一个XML格式的数据:

 
 
 
 
 

下面我们来编写一个类来读取,此类的作用是点击按钮后在EditView上显示资源文件(一个XML)中的内容,此例中会使用到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); 

  // 变量在内部类中使用的前提是此变量必须是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 { 
 // 判断是否到了文件的结尾 
 while (xrp.getEventType() != XmlResourceParser.END_document) { 
   //文件的内容的起始标签开始,注意这里的起始标签是test.xml文件里面标签下面的第一个标签 
   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)+"nn"); 
     } 
   } 
   xrp.next(); 
 } 
 et.setText(sb.toString()); 
      } catch (XmlPullParserException e) { 
      } catch (IOException e) { 
 e.printStackTrace(); 
      } 
    } 
  }); 
}

JSON
创建JSON数据

try {
    //首先创建对象中的一个单个键值对
    JSonObject root = new JSonObject();
    root.put("cat", "it");
    //另一个键值对的值是一个数组,数组里装了3个JSON对象,所以再分别搞3个JSONObject对象存放键值对
    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个对象存入一个数组
    JSonArray array = new JSonArray();
    array.put(lan1);
    array.put(lan2);
    array.put(lan3);
    //再将数组作为键"languages"的值,构成一个对象
    root.put("languages", array);
    //本例中只将内容输出出来
    System.out.println(root.toString());

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

读取JSON数据
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);
    //将文本中的数据,都读取到一个StringBuilder当中
    String line;
    StringBuilder builder = new StringBuilder();
    while((line=br.readLine()) != null ){
      builder.append(line);
    }
    br.close();
    isr.close();

    JSonObject root = new JSonObject(builder.toString());
    //根据键,获得键对应的值,由于值是String类型,所以用getString
    System.out.println("cat="+root.getString("cat"));
    //根据键,获得键对应的数组,由于值是一个数组,所以用getJSonArray
    JSonArray array = root.getJSonArray("languages");
    //由于要遍历数组,所以创建一个for循环
    for(int i=0; i < array. length(); i++){
      //由于每一个数组当中的元素,也是一个新的JSON对象
      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();
  }

   

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/162926.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号