Android JSON数据解析

1JSON的概念

json全称javascropt Object Natation 是一种轻量级的数据交换格式一般用于客户端和服务器交互的一种手段

JSON的使用格式

由于JSON用作在网络传输中的一种方法,它就类似一种通信协议,客户端和服务器通过Json字符串来传递数据。JSON的书写格式为:由键值对组成,名称/值对。语法规则为数据在名称/值对中数据由逗号分隔花括号保存对象方括号保存数组

eg:    "name" :"小王"    就是一个一个简单的键值对

[
    {"id":"1","name":"wang","sex":"男"},
    {"id":"2","name":"Li","sex":"男"},
    {"id":"3","name":"Hong","sex":"女"},
]

2Android中提供的Json解析类

  • JSONObject: Json对象,可以完成Json字符串与Java对象的相互转换
  • JSONArray: Json数组,可以完成Json字符串与Java集合或对象的相互转换
  • JSONStringer: Json文本构建类,这个类可以帮助快速和便捷的创建JSON text, 每个JSONStringer实体只能对应创建一个JSON text
  • JSONTokener:Json解析类
  • JSONException:Json异常

3 代码实例

请写出使用JSONArray类解析JSON数据的主要逻辑代码。JSON数据如下所示。

[{"name":"LiLi","score":"95"},{"name":"LiLei","score":"99"},

{"name":"王小明","score":"100"},{"name":"LiLei","score":"89"}]

从题目中可以看出,需要我们自己初始化一个Json数据,我们这边直接把Json写道String字符串中使用的方便点

注意:因为""有申明字符串的意思我们初始化的是一个String字符串,所以在对象中需要用\对"进行转义,否则会造成String字符串提前结束的问题.

public void JsonEg{

String json = "[{\"name\":\"LiLi\",\"score\":\"95\"},{\"name\":\"LiLei\",\"score\":\"99\"},
{\"name\":\"王小明\",\"score\":\"100\"},{\"name\":\"LiLei\",\"score\":\"89\"}]"

JSONArray jsonarray = null;
tre{
    jsonarry = new JSONArray(json);
    for(int i = 0 ;i<jsonarray.length();i++)
    {
        //通过JSONObject类把JSON字符串转换为java对象,以便于后续操作    
        JSONObject jsonobject = jsonarray.getJSONObject(i);
        String name = jsonobject.optString("name");
        int score = jsonobject.optInt("score");        

    }
//抛出错误
}catch(JSONException e){
    e.printStackTrance();
}




}

如果想保存多条数据,可以定义一个类来来保存单个数据,再通过一个链表保存所有数据。 

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值