Android中Json应用实例介绍


 --效果图见下方附件:

 

 

 

1、首先看看什么是Json,简介如下:详情请点这里链接

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。 JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C, C++, C#, Java, JavaScript, Perl, Python等)。这些特性使JSON成为理想的数据交换语言。易于人阅读和编写,同时也易于机器解析和生成。

 

2、再来看看这次测试的Json源文件内容

{
   
    "peoples": [
        {
            "name": "张三",
            "age": "22",
            "tel": {
              "hometel": "家庭电话1",
              "companytel": "公司电话电话1"
             }
        },
        {
            "name": "李四",
            "age": "36",
            "tel": {
              "hometel": "家庭电话2",
              "companytel": "公司电话电话2"
             }
        }
    ]
}

 

3、了解了Json的相关介绍和语法之后,来看看怎么用程序将其内容解析出来,下面看解析该Json文件的代码

public static ArrayList<Person> getUsers(InputStream inputStream) throws Exception {

  ArrayList<Person> persons = new ArrayList<Person>();
  byte[] bts = StreamTool.readStream(inputStream);
  String contents = new String(bts, "gb2312");

  JSONArray personsArr = new JSONObject(contents).getJSONArray("peoples");

  System.out.println("Json文件内容 = " + contents);

  int personCount = personsArr.length();

  for (int i = 0; i < personCount; i++) {

   Person p = new Person();

   JSONObject person = (JSONObject) personsArr.opt(i);
   String name = person.getString("name");
   int age = person.getInt("age");

   // 得到电话的集合
   JSONObject tels = new JSONObject(person.getString("tel"));

   String homeTel = tels.getString("hometel");
   String cmpTel = tels.getString("companytel");

   p.setName(name);
   p.setAge(age);
   p.setHomeTel(homeTel);
   p.setCompanyTel(cmpTel);

   persons.add(p);
  }

  if (inputStream != null) {
   inputStream.close();
   System.out.println("流已关闭.....");
  }
  return persons;

 }

 

4、来写单元测试方法

public void testParser() {

  InputStream inputStream = getContext().getClassLoader()
    .getResourceAsStream("person.json");
  
  if (inputStream != null) {
   
   try {
    ArrayList<Person> persons = JsonParser.getUsers(inputStream);
    
    for (Person person : persons) {
     System.out.println("person Info = " + person);
    }
   } catch (Exception e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
   }
  }
 }

 

总结和建议:

1、android中除了可以用Json来完成数据交换,也可以用XML来完成数据交换,但是android官方推荐的是通过Json方式,因为用Json要比用XMl性能更好,效率更高

2、本实例只是介绍了一点点相关的知识,详情见android api介绍

3、希望各位读者举一反三,找到高效的学习方法

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值