android json解析

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

  下面让我们先来看一下json:

{
     "firstName": "John",
     "lastName": "Smith",
     "male": true,
     "age": 25,
     "address": 
     {
         "streetAddress": "21 2nd Street",
         "city": "New York",
         "state": "NY",
         "postalCode": "10021"
     },
     "phoneNumber": 
     [
         {
           "type": "home",
           "number": "212 555-1234"
         },
         {
           "type": "fax",
           "number": "646 555-4567"
         }
     ]
 }


JSON建构于两种结构:

  • “键/值”对的集合。不同的语言中,它被理解为对象(object),纪录(record),结构(struct),字典(dictionary),哈希表(hash table),有键列表(keyed list),或者关联数组 (associative array)。
  • 值的有序列表(An ordered list of values)。在大部分语言中,它被理解为数组(array)。
1、 对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个 “:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。上边那段json数据就是一个对象,里面有包括了数组和对象;
2、数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。值(value)可以是双引号括起来的字符串(string)、数值(number)、truefalse、 null、对象(object)或者数组(array)。这些结构可以嵌套。
好了,了解了json的结构后我们再来看看上面的那段json数据。首先,这段json数据是由大括号“{……}”包起来的,也就可以看做一个json对象(JSON Object),我们可以看到
     "firstName": "John",
     "lastName": "Smith",
     "male": true,
     "age": 25,



  
  
   String json = "";//json是上面的那段json数据;
   //得到这段json数据对象 
   JSONObject object = new JSONObject(json);
   //获取键对应的值
   String firstName = object.getString("firstName");
   String lastName = object.getString("Smith");
   boolean male = object.getBoolean("male");   
   int age = object.getInt("age");
   //获取address对象
   JSONObject address = object.getJSONObject("address");
   //获取里面的值
   String streetAddress = address.getString("streetAddress");
   ......
   //获取数组 并得到里面的值
   JSONArray array = object.getJSONArray("phoneNumber");
   int length = array.length();
   for(int i=0;i<length;i++){
       JSONObject obj = array.getJSONObject(i);
       String type = obj.getString("type");
       String number = obj.getString("number");
    } 
   
好了关于json的解析就讲到这里,基本的json解析就这么简单,做多了就熟练了,俗话说熟能生巧就值这个道理
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值