json数据的特点

           json是一种轻便量级的数据交换格式,具有良好的可读和便于快速编写的特性。可以在不同的平台间进行数据交换。json是javaScript对象表示语法的子集。json中只有两种结构:对象和数组.json的值由数字、字符串、逻辑值、数组、对象、null等组成。

          (1)对象:在json中是“{}”括起来的内容,数据结构为{key:vlaue,key : value...........}的键值对结构。在面向对象中,key为对象的属性,value为对象的属性值,取值方法为对象key获取属性值,该属性值得类型可以是数字,字符串,数组,对象等。

            (2)数组:在json中是‘[]’括起来的内容,数据结构为["java","javascript","vb"......],与所有的语言一样,使用索引获取值,字段的类型可以是数字,字符串、数组、对象等

   如何使用json解析json数据呢?

{“name”:"zhangsan","age":27,"married":true}   json1

[61,34,46]

AndroidSDK中提供了org.json包,由于json数据结构只有对象和数组,因此org.json提供了JSONObject和JSONArray两个类对json数据进行解析;例如,使用JSONObject解析对象  JSONObejct jsonObj = new JSONObeject(json1);

String name = jsonObj.optString("name");int age = jsonobj.optInt("age");boolean married = jsonObj.optBoolean("married");

从上述代码中可以看出,数组的解析方法和对象类似,只是将key值换成为数组中的下标,另外代码中用到了optInt()方法,这种方法在解析数据是安全的,如果对应的字段不存在,则返回空值和0,不会报错。



使用GSON解析json数据

gson库是由google提供的,若要使用Gson库,首先需要将json.jar添加到项目中,然后才能调用其提供的发方法。接下来通过示例演示如何使用GSON解析上面的JSON数据。使用GSON库之前,首先创建JSON数据对应的实体类Preson需要注意的就是,实体类中的成员名称要与JSON数据的KEY一致。

使用GSON解析json数据的代码如下:

Gson  gson = new Gson();

person person = gson.formJson(json1,Person.class);

使用JSON解析解析JSON数据,示例代码如下GSON gson = new Gson();

Tyoe listType = new TypeToken<List<Interger>>(){}.getType();

List<Integer> ages = gson.formJson(json2,listType);

从上述中可以看出,使用GSON库解析JSON数据是十分简单的,同时可以提高开发效率,推荐使用


如何使用jsonReader解析json字符串?

jsonRader的使用与XML解析中的PULL方式有点类似,在创建JSONObject与JSONArray对象时,传递的参数是String类型,而在创建JSONReader对象时传递的参数是Reader类型。在访问网络中,可以直接传递输入流,近而转化成Reader;接着根据返回的数据类型调用beginObject和beginArray()方法用于开始读取对象或者数组,然后调用hasNext方法获取读取数据,数据读取完后需要调用endObeject和endArray()来关闭对象和数组;最后调用close方法关闭Reader.

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值