JSON解析

   

一、JSON介绍

1. 简介

  JSON 的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式。

2. 特点

(1)JSON 比 XML 数据传输的有效性要高出很多
(2)JSON 完全独立于编程语言
(3)本质就是具有特定格式的字符串

3.对象格式

{ 
    "name":"zhangsan", 
    "age": 20 ,
    ...
} 

一个对象, 由一个大括号表示.
括号中 描述对象的属性 . 通过键值对来描述对象的属性
(可以理解为, 大括号中, 包含的是一个个的键值对.)
格式:
1)键与值之间使用冒号连接, 多个键值对之间使用逗号分隔.
2)键值对的键 应使用引号引住 (通常Java解析时, 键不使用引号会报错.而JS能正确解 析.)
3)键值对的值, 可以是JS中的任意类型的数据.

     [元素1,元素2...]

数组格式:
在JSON格式中可以与对象互相嵌套

二、Gson和FastJson框架介绍

1.Gson

简介
  GSON是Google提供的用来在Java对象和JSON数据之间进行映射的Java类库。可以将一个Json字符转成一个Java对象,或者将一个Java转化为Json字符串。

特点
(1)快速、高效
(2)代码量少、简洁
(3)面向对象
(4)数据传递和解析方便

1) 将对象转换为JSON字符串

(1). 引入JAR包
(2). 创建Gson对象 Gson gson = new Gson();
(3). 通过创建的Gson对象调用toJson()方法,返回json数据:
  String json = gson.toJSON(要转换的对象);

(2)和(3)可以简写:
在需要转换JSON字符串的位置编写如下代码即可
String json = new Gson().toJSON(要转换的对象);

代码如下:

    // 1.获取对象
    Book b = new Book("1001", "唐诗", "第一章");
    // 2.转换
    String json = new Gson().toJson(b);

2) 将JSON字符串转换为对象

(1). 引入JAR包
(2). 在需要转换Java对象的位置, 编写如下代码:
  对象 = new Gson().fromJson(JSON字符串,对象类型.class);
代码如下:

   // JSON字符串
   String json = "{\"id\":\"1001\",\"name\":\"唐诗\",\"info\":\"第一章\"}";
   // 转换
   Book book = new Gson().fromJson(json, Book.class);

2.FastJson

简介
  FastJson是阿里开源的一个高性能的JSON框架FastJson,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。

特点
Fastjson 可以操作任何 Java 对象,即使是一些预先存在的没有源码的对象。

1) 将对象转换为JSON字符串

(1). 引入JAR包
(2)在需要转换JSON字符串的位置编写如下代码即可:
 String json=JSON.toJSONString(要转换的对象);
代码如下:

   // 1.对象
   Book b = new Book("1002", "唐诗", "第二章");
   // 2.转换
   String json = JSON.toJSONString(b);

2) 将JSON字符串转换为对象

(1). 引入JAR包
(2). 在需要转换Java对象的位置, 编写如下代码:
  类型 对象名=JSON.parseObject(JSON字符串, 类型.class);
  或 List list=JSON.parseArray(JSON字符串,类型.class);
代码如下:

   // JSON字符串
   String json = "{\"id\":\"1002\",\"name\":\"唐诗\",\"info\":\"第二章\"}";
   // 转换
   Book book = JSON.parseObject(json,Book.class);

发表评论