使用Gson和FastJson转换JSON


简介

JSON: JavaScript Object Notation JS对象简谱 , 是一种轻量级的数据交换格式.


一、JSON格式

1、对象格式

  • JSON:{ “name”:“金苹果”, “info”:“种苹果” }
  • 一个对象, 由一个大括号表示.
  • 括号中 描述对象的属性 .
  • 通过键值对来描述对象的属性

2、数组格式:

  • 在JSON格式中可以与对象互相嵌套 [元素1,元素2…]

二、JSON的转换

  • JSON的转换有二种库分别为
  • 1.Gson
  • 2.FastJson

1.Gson:

- 将对象转换为JSON字符串

代码如下(示例):

转换JSON字符串的步骤: 
	1. 引入JAR包 
	2. 在需要转换JSON字符串的位置编写如下代码即可:
		String json = new Gson().toJSON(要转换的对象);
		
	// 1. 创建 Gson 对象
	Gson gson = new Gson();
	// 2. 转换 为 json 。
	Book s = new Book("武松打虎","讲述武松打虎的故事","007");
	Object s1 = gson.toJson(s);
	System.out.println(s1);

- 将JSON字符串转换为对象

代码如下(示例):

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

	//  json转换为对象
	Gson gson1 = new Gson();
	Book book = gson1.fromJson("{\"name\":\"武松打虎\",\"info\":\"讲述武松打虎的故事\",\"id\":\"007\"}\n", Book.class);
	System.out.println(book.toString());

- 转换 数组

代码如下(示例):

	// json 转换为 HashMap类型  {"name":"武松打虎","info":"讲述武松打虎的故事","id":"007","page":["抽烟","喝酒","烫头"]}
	Gson gson2 = new Gson();
	HashMap hashMap = gson2.fromJson("{\"name\":\"武松打虎\",\"info\":\"讲述武松打虎的故事\",\"id\":\"007\",\"page\":[\"抽烟\",\"喝酒\",\"烫头\"]}", HashMap.class);
	System.out.println(hashMap.get("page").getClass());   // page的类型是  ArrayList
	//转换为列表
	List page = (List) hashMap.get("page");
	System.out.println(page);

2.FastJson:

- 将对象转换为JSON字符串

代码如下(示例):

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

		// 字符串 转换为  json
        Book b = new Book("金牌主播", "德莱文出饮血剑了", "007");
        // 转换
        Object s = JSON.toJSONString(b);
        System.out.println(s);

- 将JSON字符串转换为对象

代码如下(示例):

1. 引入JAR包 
2. 在需要转换Java对象的位置, 编写如下代码: 
		类型 对象名=JSON.parseObject(JSON字符串, 类型.class); 
		或 List<类型> list=JSON.parseArray(JSON字符串,类型.class);
		// json 转换 对象
        Book book = JSON.parseObject("{\"id\":\"007\",\"info\":\"德莱文出饮血剑了\",\"name\":\"金牌主播\"}", Book.class);
        // 使用 FastJson时,应注意 权限修饰符 等级。
        System.out.println(book);

- 转换 数组

代码如下(示例):

// Json 转换 数组
	List<String> strings = JSON.parseArray("[\"123\",\"123\",\"321\"]", String.class);
	System.out.println(strings.get(2));

猜你喜欢

转载自blog.csdn.net/weixin_45663222/article/details/112394150