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();
}




}

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

  • 3
    点赞
  • 6
    收藏
  • 打赏
    打赏
  • 2
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论 2

打赏作者

icejuhua

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值