
Json追加2
JSON简介
- JAVAScript Object Notation是一种轻量级的数据交换格式
- 具有良好的可读和便于快速编写的特性。
- 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持)
- JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json
- JSON作为数据是目前网络中主流的数据传输格式之一,应用十分广泛,说是使用率达到99%一点也不勉强
JSON支持的数据类型
我们要学习使用JSON解析,必须对JSON解析的规则原理有深刻的认识和了解,然后才知道它的一个实现原理
JSON里面的数据是以一种键值对的方式存在
(”key”:”value”)中值的类型可以是下面数据类型中的任意一种:
1. 数字(整数或浮点数)
2. 逻辑值(true 或 false)
3. 字符串(在双引号中)
4. 数组(在方括号中)
5. 函数
6. 对象(在大括号中)
7. null
JSON语法规则
JSON的语法规则非常的简单,就是使用
大括号’{}’,
中括号’[]’,
逗号’,’,
冒号’:’,
双引号’“”’。
数据类型:
嵌套对象、数组、字符串、数字、布尔值或空值。
我们在JSON解析中只有三中情况出现
1.{} 解析’大括号’类型
2. [ ] 解析是’中括号’类型
3. 其实只有两种,那第三种则是1与2的组合方法即”{’name’:’李书豪’ ,’hobby’:[‘编程’,’电竞’,’睡觉’]}”那么下面分别来看一些这三种类型以及解析
JSON基本语法与图例
- Object(对象类型)
- 用{ }包含一系列无序的key–Value键值对表示,其中Key和Value之间用冒号分割,每个key-value之间用逗号分割。
- 比如:
- Array(数组类型)
- 使用[ ]包含所有元素,每个元素用逗号分隔,元素可以是任意的值
- 比如:
- 组合形
JSON数据解析
纯对象(Object)的解析{ }:
[java] view plain copy print ?
- import org.json.JSONException;
- import org.json.JSONObject;
-
- /**
- * JSON-->纯对象(Object)的解析
- *
- * 注:我们在eclipse里面操作JSON解析的时候需要第三方jar包的支持
- * @author sKy°
- * @date 2016-5-8
- * @version 1.0
- */
- public class Json01 {
- public static void main(String[] args) {
- // 编辑一个我们要解析的数据对象
- // 根据JSON的官方定义,键,加"",值,如果是字符串,就加"",其他不加。
- String json="{'name':'李书豪','age':24}";
-
- try {
- // 创建JSON解析对象(两条规则的体现:大括号用JSONObject,注意传入数据对象)
- JSONObject obj = new JSONObject(json);
- // obj.后面有各种数据类型,根据对象来选择使用的数据类型
- String name =&String("name");
- // 同理如上,这里的age为Int类型,我们就用对应的类型进行解析
- int age =&Int("age");
- // 最后输出到控制台
- System.out.println(name+"<--->"+age);
-
- } catch (JSONException e) {
- e.printStackTrace();
- }
-
- }
- }
纯数组(Array)的解析{ }:
[java] view plain copy print ?
- import org.json.JSONArray;
- import org.json.JSONException;
-
- /**
- * 对纯数组Aarry的解析
- * @author sKy°
- * @date 2016-5-8
- * @version 1.0
- */
- public class Json02 {
- public static void main(String[] args) {
- // 编辑一个我们要解析的数据对象
- String json="['天津冷','北京暖','东京热','南京凉']";
-
- try {
- // 创建JSON解析对象(两条规则的体现:中括号用JSONArray,注意传入数据对象)
- JSONArray jArray = new JSONArray(json);
- // 取得数组长度
- int length = jArray.length();
- // 回想数组的取值的方式? --->for循环遍历数组--->得到值
- for (int i = 0; i < length; i++) {
- // 根据解析的数据类型使用该类型的get方法得到该值,打印输出
- String string =&String(i);
- System.out.print(string+",");
- }
-
- } catch (JSONException e) {
- // TODO: handle exception
- }
-
-
- }
- }
组合类型的解析(一):
- 例子: String json=”{‘name’:’李书豪’,’girlFriend’:{‘name’:’高圆圆’,’age’:18}}”;
- 分析: 我们首先是解析外面的大括号的对象,然后,通过girlfFriend,获取到对应的被包含的里面大括号对象。所以这里我们需要建立一个类,封装对应的数据字段,根据setName ,setAge的方式在去得到对应的值
[java] view plain copy print ?
-