JSONObject和JSONArray总结,个人理解

来源:互联网 发布:江西日报网 软件 编辑:程序博客网 时间:2024/04/29 08:11

本人Android新手,如有缺漏,请高手们指导指导


1.JSON简介

JSON指的是JavaScript对象表示法(JavaScript Object Notation),它是一种轻量级的文本交换格式,支持多种服务端语言,易于解析和生成;JSON是基于JavaScript的一个子集,但是JSON仍然独立于语言和平台;JSON常用于客户端和服务端数据交互


2.JSON打包

Android提供的JSON解析类都在包org.json下,主要JSONObject,JSONArray,JSONStringer,JSONException,JSONTokener等几个;客户端可将数据打包成JSON格式后发送给服务端


3.符号

JSONObject 是一个由{ }包裹起来的对象,有键名

JSONArray 是一个由[ ]包裹起来的数组,没有键名


4.示例

JSONObject :{"name":lala, "age":60}

JSONArray:["14", "2", "89"]


5.JSONObject

获取值的内容

String name = jsonObject.getString("name");
创建JSONObject

org.json.JSONObject object = new org.json.JSONObject();try {    object.put("name", "Popo");    object.put("age", 40);} catch (JSONException e) {    e.printStackTrace();}


6.JSONArray

String jsonString = "{"code":[{"name":"java"}, {"name":"c"}]}";

获取name的值

try {    org.json.JSONObject jsonObject1 = new org.json.JSONObject(jsonString);    org.json.JSONArray list = jsonObject1.getJSONArray("code");    for (int i = 0; i < list.length(); i++) {        Log.i("********", list.getJSONObject(i).getString("name"));    }} catch (JSONException e) {    e.printStackTrace();}


7.Gson

Gson是Google提供用来在Java对象和JSON 数据之间进行映射的Java类库。可以将一个JSON字符串转成一个 Java对象,或者反过来。(JSON的键值name = Java对象的属性name,相等且一一对应,此为必须条件)

JSON字符串

String jsonString = "[{"name":"lala", "age":"60"}]";

Java对象

public class JsonBean implements Serializable {    private String name;    private String age;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public String getAge() {        return age;    }    public void setAge(String age) {        this.age = age;    }}

Java对象转为JSON字符串

String jsonString = new Gson().toJson(jsonBean);
JSON字符串转为Java对象

JsonBean jsonBean = new Gson().fromJson(jsonString, JsonBean.class);

JSON字符串转为Java对象的集合

下面代码使用了TypeToken,这是Gson提供的数据类型转换器,可支持各种数据集合类型转换

List<JsonBean> list = new Gson().fromJson(jsonString, new TypeToken<List<JsonBean>>(){}.getType());


8.其他包

导包网址:http://mvnrepository.com/  (复制gradle下的代码,到Module app的build.gradle下)



JSON-Lib (net.sf.json)

将JSON 字符串转换为JSONObject对象

JSONObject jsonObject = JSONObject.fromObject(jsonString);

将JSON 字符串转换为JSONArray对象

JSONArray jsonArray = JSONArray.fromObject(jsonString);













1 0
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 C语言实验题――三个数排序 C语言实验题――三角形面积 C语言实验题――两个数比较 C语言实验题――温度转换 C语言实验题――鸡兔同笼 输入入门(1) C语言实验题――最小公倍数和最大公约数 C语言实验题――分数序列 C语言实验题――数组逆序 C语言实验题――一元二次方程 C语言实验题――某年某月的天数 相邻最大数 Picture 羊村运动会――撑杆跳高 字符矩阵排序 1535:找规律填数字 idm6.38 C语言实验题――圆周率 缺陷检测 成都瓶儿 谭松韵 桥本 YouTube、Google+、Facebook、Twitter、维基百科最全hosts C语言实验题――拍皮球 求奇数的乘积 C语言实验题――字符编码 intellijlicense andriod导航栏 mfc文件上传下载 Eclipse4.8中搭建Android开发环境 1178:C语言实验题――单词统计 现在小明决定实现一个类似malloc的内存分配系统,具体来说,他需要连续处理若干申请内存的请求,这个 给定某二叉树的前序序列和中序序列,输出该二叉树的后序序列。(输入的前序遍历和中序遍历的结果中都不含重 vibe twitter 幼呦 fasttunnel 一叫三吱 浩君恋母 C语言实现朴素贝叶斯 shadowsocks服务