Android——JSON数据的使用

来源:互联网 发布:狼群算法源代码 编辑:程序博客网 时间:2024/06/15 21:17

本文是根据极客学院的相关课程学习的。
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
原创粉丝点击