Java中JSON的解析

1、基本概念

JSON的全称为:JavaScript Object Notation ,是一种轻量级的数据交换格式。当我们的服务器和客户端进行数据交换时,一般不会将类对象直接进行传输,而是将类对象转换为JSON格式或者XML格式,再进行数据交换。举个栗子:我们先创建一个Java对象:

class Book{
     private String name;
     private String info;
	
     get/set...
   }
   Book b = new Book();
   b.setName(“西游记”);
   b.setInfo(“讲述了师徒四人西天取经的故事”);
   ...

将这个BOOK的对象转换为XML格式,其存储方式为:

<book>
	<name>西游记</name>
	<info>讲述了师徒四人西天取经的故事</info>
</book>

JSON格式的存储方式为:

{
	 "name":"西游记",
	 "info":"讲述了师徒四人西天取经的故事"
 }

现在的网络数据传输中,JSON的使用是最为普遍的。在这里,简单记录下JSON的学习。JSON作为一种数据交换格式,它可以将Java中的对象快速的转换为 JSON格式的字符串。也可以将JSON格式的字符串, 转换为Java的对象。

2、JSON的解析

Java中没有内置JSON的解析,因此使用JSON需要借助第三方类库。下面是几个常用的 JSON 解析类库:

  1. Gson: 谷歌开发的 JSON 库,功能十分全面。
  2. FastJson: 阿里巴巴开发的 JSON 库,性能十分优秀。
  3. Jackson: 社区十分活跃且更新速度很快。

这里我们分享下GJSON和FastJSON的对象与JSON字符串的转换方法:

GJSON

将对象转换为JSON字符串步骤:

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

案例:
Book b = new  Book();
String json = new Gson().toJson(b);
System.out.println(json);

将JSON字符串转换为对象步骤:

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

案例:
String json = "{
	 \"name\":\"西游记\",
	 \"info\":\"讲述了师徒四人西天取经的故事\"
 }"

Book b = new Gson().fromJson( json, Book.class)

FastJson

将对象转换为FastJSON字符串步骤:

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

案例:
Bookb = BookDao.find();
String json=JSON.toJSONString(b);
System.out.println(json);

将JSON字符串转换为对象步骤:

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

案例:
String json = "{
	 \"name\":\"西游记\",
	 \"info\":\"讲述了师徒四人西天取经的故事\"
 }"
 
Book book = JSON.parseObject(json, Book.class);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JavaJSON解析可以使用Java内置的JSON库或第三方库。以下是使用Java内置的JSON解析JSON的示例: 1. 导入JSON库 ```java import org.json.*; ``` 2. 创建JSON对象 ```java String jsonString = "{\"name\":\"Tom\", \"age\":18}"; JSONObject jsonObject = new JSONObject(jsonString); ``` 3. 获取JSON对象的数据 ```java String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); ``` 完整代码示例: ```java import org.json.*; public class JsonDemo { public static void main(String[] args) { String jsonString = "{\"name\":\"Tom\", \"age\":18}"; JSONObject jsonObject = new JSONObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getInt("age"); System.out.println("Name: " + name); System.out.println("Age: " + age); } } ``` 输出结果: ``` Name: Tom Age: 18 ``` 使用第三方库解析JSON也很简单,例如使用FastJSON: 1. 导入FastJSON库 ```java import com.alibaba.fastjson.*; ``` 2. 创建JSON对象 ```java String jsonString = "{\"name\":\"Tom\", \"age\":18}"; JSONObject jsonObject = JSON.parseObject(jsonString); ``` 3. 获取JSON对象的数据 ```java String name = jsonObject.getString("name"); int age = jsonObject.getIntValue("age"); ``` 完整代码示例: ```java import com.alibaba.fastjson.*; public class JsonDemo { public static void main(String[] args) { String jsonString = "{\"name\":\"Tom\", \"age\":18}"; JSONObject jsonObject = JSON.parseObject(jsonString); String name = jsonObject.getString("name"); int age = jsonObject.getIntValue("age"); System.out.println("Name: " + name); System.out.println("Age: " + age); } } ``` 输出结果与前面相同: ``` Name: Tom Age: 18 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值