Json追加2

本文详细介绍了JSON的基本概念、支持的数据类型和语法规则,并通过实例展示了如何解析JSON对象、数组及组合类型。文章提供了Java代码示例,演示了使用JSONObject和JSONArray解析JSON数据的过程,包括纯对象、纯数组和组合类型数据的解析。此外,还讨论了如何通过封装类来处理嵌套的JSON数据结构。
摘要由CSDN通过智能技术生成

JSON简介

  • JAVAScript Object Notation是一种轻量级的数据交换格式
  • 具有良好的可读和便于快速编写的特性。
  • 业内主流技术为其提供了完整的解决方案(有点类似于正则表达式 ,获得了当今大部分语言的支持)
  • JSON采用兼容性很高的文本格式,同时也具备类似于C语言体系的行为。 – Json.org
  • 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数据解析

  • JSON解析一定要掌握的两条规则:

    • 1.如果看到是{ }–>使用JSONObject
    • 2.如果看到的[ ]–>使用JSONArray解析
  • 掌握了JSON的数据类型和基本语法后,下面我们将对JSON的各种语法类型进行详细解析(注意掌握两条规则的使用,掌握了JSON解析就那么回事)

纯对象(Object)的解析{ }:

[java]  view plain   copy
  print ?
  1. import org.json.JSONException;  
  2. import org.json.JSONObject;  
  3.   
  4. /** 
  5.  * JSON-->纯对象(Object)的解析 
  6.  *  
  7.  * 注:我们在eclipse里面操作JSON解析的时候需要第三方jar包的支持 
  8.  * @author sKy° 
  9.  * @date 2016-5-8 
  10.  * @version 1.0 
  11.  */  
  12. public class Json01 {  
  13.     public static void main(String[] args) {  
  14. //      编辑一个我们要解析的数据对象  
  15. //     根据JSON的官方定义,键,加"",值,如果是字符串,就加"",其他不加。  
  16.         String json="{'name':'李书豪','age':24}";  
  17.   
  18.         try {  
  19. //          创建JSON解析对象(两条规则的体现:大括号用JSONObject,注意传入数据对象)  
  20.             JSONObject obj = new JSONObject(json);  
  21. //          obj.后面有各种数据类型,根据对象来选择使用的数据类型  
  22.             String name = obj.getString("name");  
  23. //          同理如上,这里的age为Int类型,我们就用对应的类型进行解析  
  24.             int age = obj.getInt("age");  
  25. //          最后输出到控制台  
  26.             System.out.println(name+"<--->"+age);  
  27.   
  28.         } catch (JSONException e) {  
  29.             e.printStackTrace();  
  30.         }  
  31.   
  32.     }  
  33. }  

这里写图片描述

纯数组(Array)的解析{ }:
[java]  view plain   copy
  print ?
  1. import org.json.JSONArray;  
  2. import org.json.JSONException;  
  3.   
  4. /** 
  5.  * 对纯数组Aarry的解析 
  6.  * @author sKy° 
  7.  * @date 2016-5-8 
  8.  * @version 1.0 
  9.  */  
  10. public class Json02 {  
  11.     public static void main(String[] args) {  
  12. //      编辑一个我们要解析的数据对象  
  13.         String json="['天津冷','北京暖','东京热','南京凉']";  
  14.   
  15.         try {  
  16. //          创建JSON解析对象(两条规则的体现:中括号用JSONArray,注意传入数据对象)  
  17.             JSONArray jArray = new JSONArray(json);  
  18. //          取得数组长度  
  19.             int length = jArray.length();  
  20. //          回想数组的取值的方式? --->for循环遍历数组--->得到值  
  21.             for (int i = 0; i < length; i++) {  
  22. //              根据解析的数据类型使用该类型的get方法得到该值,打印输出  
  23.                 String string = jArray.getString(i);  
  24.                 System.out.print(string+",");  
  25.             }  
  26.   
  27.         } catch (JSONException e) {  
  28.             // TODO: handle exception  
  29.         }  
  30.   
  31.   
  32.     }  
  33. }  

这里写图片描述

组合类型的解析(一):
  • 例子: String json=”{‘name’:’李书豪’,’girlFriend’:{‘name’:’高圆圆’,’age’:18}}”;
  • 分析: 我们首先是解析外面的大括号的对象,然后,通过girlfFriend,获取到对应的被包含的里面大括号对象。所以这里我们需要建立一个类,封装对应的数据字段,根据setName ,setAge的方式在去得到对应的值
[java]  view plain   copy
  print ?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值