Java 实现 JSON 数据解析

327 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第21天,点击查看活动详情


JSON

JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。采用完全独立于编程语言的文本格式来存储和表示数据。

对于前后端交互的项目,经常会用到 JSON 来实现前后端的通信。

解析 JSON

对于 Java 解析 JSON 数据,需要调用第三方的类库来实现,常用的有以下几种 JSON 解析类库:

  • Gson: 谷歌开发的 JSON 库
  • FastJson: 阿里巴巴开发的 JSON 库
  • Jackson: 社区十分活跃且更新速度很快。

FastJson

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

FastJson 可以解析 JSON 格式的字符串,支持将 Java Bean 序列化为 JSON 字符串,也可以将 JSON 字符串反序列化为 Java Bean。

我们主要使用三个对象:

  • JSON用于将字符串反序列化为JavaBean和JavaBean序列化为JSON
  • JSONObject代表的是JSON对象,底层通过Map来操作,常用getString等方法来获取对应的值
  • JSONArray代表的是JSON对象数组,底层实际上是List,它用作于操作JSON对象

JSON

package com.alibaba.fastjson;

public abstract class JSON {
      // Java对象转换为JSON字符串
      public static final String toJSONString(Object object);
      //JSON字符串转换为Java对象
      public static final <T> T parseObject(String text, Class<T> clazz);
      //jSON字符串转换为Java数组
      public static final <T> T parseArray(String text, Class<T> clazz);
}

如果我们需要修改 JSON 字符串中的数据,比如修改某个属性,我们不会直接对 JSON 字符串进行操作,一般是将 JSON 转成我们自己的 JavaBean,再操作 JavaBean,最后序列化为 JSONString。