JSON 解析的教程

1.什么是JSON?

JSON: JavaScript Object Notation(对象表示法),js对象简谱,是一种轻量级的数据交换格式.

为什么要推广JSON:  格式程序员解析起来比XML要简单.

                   格式机器解析比XML要快.

                   在数据传输时所占的空间少

JSON对象格式:

一个对象, 由一个大括号表示.

括号中 描述对象的属性 . 通过键值对来描述对象的属性

(可以理解为, 大括号中, 包含的是一个个的键值对.)

格式:

键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.

键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错. 而JS能正确解

析.)

键值对的值, 可以是JS中的任意类型的数据

  例子:

JSON:

{

"name":"金苹果",

"info":"种苹果"

}

当一段代码太过复杂时,可以在百度上搜索JSON查看JSON视图.

  1. JSON解析:

在进行JSON解析之前需要下载两个jar文件

           gson-2.9.0.jar   fastjson-1.2.79.jar

Google Gson是一个简单的基于Java的库,用于将Java对象序列化为JSON,反之亦然。 它是由Google开发的一个开源库。

fastjison:是一个Java语言编写的高性能功能完善的JSON库。它采用一种“假定有序快速匹配”的算法,把JSON Parse的性能提升到极致,是目前Java语言中最快的JSON库。

Gosn解析方法:  


*将对象转换为 JSON 字符串


转换 JSON 字符串的步骤 :


1. 引入 JAR 包


2. 在需要转换 JSON 字符串的位置编写如下代码即可 :


String json = new Gson (). toJSON ( 要转换的对象 );



*将 JSON 字符串转换为对象


  1. 引入 JAR 包



  2. 在需要转换 Java 对象的位置 , 编写如下代码 :



  对象 = new Gson (). fromJson ( JSON 字符串 , 对象类型 . class );



Fastjosn解析方法:




*转换JSON字符串的步骤 :

  1. 引入 JAR 包



  2. 在需要转换 JSON 字符串的位置编写如下代码即可 :



  String json = JSON . toJSONString ( 要转换的对象 );



*将 JSON 字符串转换为对象



  1. 引入 JAR 包



  2. 在需要转换 Java 对象的位置 , 编写如下代码 :



  类型 对象名 = JSON . parseObject ( JSON 字符串 , 类型 . class );





  List < 类型 > list = JSON . parseArray ( JSON 字符串 , 类型 . class );



①:下载jar包

在github官网有下载.

       fastjson:                   gson:下载

②:

1.配置jar包

java json层级解析 java json数据解析_java

 

2.将下载的连个jar文件赋值到lib文件中

java json层级解析 java json数据解析_JSON_02

3.在file中点击Project Structure进行设置

java json层级解析 java json数据解析_java json层级解析_03

 

java json层级解析 java json数据解析_java_04

java json层级解析 java json数据解析_字符串_05

 

java json层级解析 java json数据解析_字符串_06

 

java json层级解析 java json数据解析_字符串_07

 

java json层级解析 java json数据解析_java json层级解析_08

 

java json层级解析 java json数据解析_JSON_09

 

 

到最后一个图,配置成功. 之后我们来测试一下:


将对象转换为 JSON 字符串


转换 JSON 字符串的步骤 :


1. 引入 JAR 包


2. 在需要转换 JSON 字符串的位置编写如下代码即可 :


String json = new Gson (). toJSON ( 要转换的对象 );



图书类,使用Gosn解析新建Book,创建私有的三个变量。生产Get,Set方法,tosString方法,生成equals()and hashCode()方法,无参有参构造方法。

java json层级解析 java json数据解析_字符串_10

 

创建一个Demo,

java json层级解析 java json数据解析_JSON_11

 

运行结果:

java json层级解析 java json数据解析_JSON_12

 

使用fastjson解析,新建Demo1.class类

java json层级解析 java json数据解析_json_13

 

运行截图:

java json层级解析 java json数据解析_字符串_14