Android——JSON数据的使用

27 篇文章 0 订阅

本文是根据极客学院的相关课程学习的。
JSON:JavaScript对象表示法(JavaScript Object Notation),是储存和交换信息的语法

特点:
独立于语言和平台
具有自我描述性,更利于理解
轻量级的文本数据交换格式

语法:
数据在键:值对中
数据有逗号分隔
花括号保存对象
方括号保存数组

值可以是
数字(整数或者浮点)、
字符串(用双引号)
Boolean
数组
对象
null

例如:

{
  "category":"graphics",
  "shape": [
    {"id": 1, "name": "triangle"},
    {"id": 2, "name": "rectangle"},
    {"id": 3, "name": "circle"}
  ]
}

然后开始讲解怎么解析JSON数据:

首先我们先在assets文件里面新建一个data.json文件,里面的内容可以放置上面的示例代码

取得assets 文件夹里的data.json文件的内容,写入到StringBuffer里面

InputStream in=getResources().getAssets().open("data.json");
            BufferedReader br=new BufferedReader(new InputStreamReader(in));
            StringBuffer sb=new StringBuffer();
            String str="";
            while((str=br.readLine())!=null){
                sb.append(str);
            }
            br.close();
            in.close();

根据字符串创建JSONObject

JSONObject root=new JSONObject(sb.toString());

然后根据JSONObject 的get…(“key”)方法取得value数据

//获得键为"category"的值字符串,加入到TextView中显示
            tv.append("category="+root.getString("category")+"\n");
            //获得JSONArray数组
            JSONArray arr=root.getJSONArray("shape");
            for(int i=0;i<arr.length();i++){
                JSONObject shape= (JSONObject) arr.get(i);
                tv.append("id="+shape.getInt("id")+"\n");
                tv.append("name="+shape.getString("name")+"\n");
            }

运行如图:
这里写图片描述

JSON的创建
新建一个JSONObject对象

JSONObject root=new JSONObject();

添加一个键值对数据

//root.put("key",value);
root.put("category","graphics");

接下来要为root添加一个数组,先创建JSONArray数组

            JSONArray arr = new JSONArray();
            //往数组里面添加JSON对象
            JSONObject shape1 = new JSONObject();
            shape1.put("id", 1);
            shape1.put("name", "triangle");

            JSONObject shape2 = new JSONObject();
            shape2.put("id", 2);
            shape2.put("name", "rectangle");

            JSONObject shape3 = new JSONObject();
            shape3.put("id", 3);
            shape3.put("name", "circle");

            //将JSONObject对象加入到数组中
            arr.put(shape1);
            arr.put(shape2);
            arr.put(shape3);

            //将JSON数组加入到root中
            root.put("shape",arr);
            Toast.makeText(MainActivity.this, root.toString(), Toast.LENGTH_SHORT).show();

运行程序:
这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值