当前位置: 首页 > news >正文

FastJson的学习

fastjson是阿里巴巴的开源JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。 fastjson是json的序列化和反序列化

一、添加依赖

<dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version>
</dependency>

完整的pom文件如下所示:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.7.15</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>FastJsonDemo</artifactId><version>0.0.1-SNAPSHOT</version><name>FastJsonDemo</name><description>FastJsonDemo</description><properties><java.version>1.8</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.83</version></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.28</version></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId><version>2.7.15</version></plugin></plugins></build></project>

二、创建实体

package com.example.fastjsondemo.model;import lombok.Data;/*** @author qx* @date 2023/8/29* @des*/
@Data
public class Student {private Long id;private String name;private Integer age;}
package com.example.fastjsondemo.model;import lombok.Data;/*** @author qx* @date 2023/8/29* @des*/
@Data
public class School {private String name;private String address;
}

三、测试

将对象生成json

  /*** 将一个对象转成Json*/@Testvoid testToJson() {Student student = new Student();student.setId(1L);student.setName("qx");student.setAge(20);String json = JSONObject.toJSONString(student);// 输出{"age":20,"id":1,"name":"qx"}System.out.println(json);}

json转对象

    /*** json转对象*/@Testvoid testToObject() {String data = "{\"age\":20,\"id\":1,\"name\":\"qx\"}";Student student = JSONObject.parseObject(data, Student.class);// 输出Student(id=1, name=qx, age=20)System.out.println(student);}

根据键获取Json数据中的值

   /*** 获取json中的值*/@Testvoid testAccessValue() {String data = "{\"age\":20,\"id\":1,\"name\":\"qx\"}";JSONObject jsonObject = JSONObject.parseObject(data);String name = jsonObject.getString("name");// 输出qxSystem.out.println(name);int age = jsonObject.getIntValue("age");// 输出20System.out.println(age);}

四、实体类中存在其他对象的情况

package com.example.fastjsondemo.model;import lombok.Data;/*** @author qx* @date 2023/8/29* @des*/
@Data
public class Student {private Long id;private String name;private Integer age;private School school;}

测试

对象转Json

 @Testvoid testToJson() {Student student = new Student();student.setId(1L);student.setName("qx");student.setAge(20);School school = new School();school.setName("广西大学");school.setAddress("南宁西乡塘区");student.setSchool(school);String json = JSONObject.toJSONString(student);// 输出{"age":20,"id":1,"name":"qx","school":{"address":"南宁西乡塘区","name":"广西大学"}}System.out.println(json);}

Json转对象

  /*** json转对象*/@Testvoid testToObject() {String data = "{\"age\":20,\"id\":1,\"name\":\"qx\",\"school\":{\"address\":\"南宁西乡塘区\",\"name\":\"广西大学\"}}";Student student = JSONObject.parseObject(data, Student.class);// 输出Student(id=1, name=qx, age=20, school=School(name=广西大学, address=南宁西乡塘区))System.out.println(student);}

获取Json中的某个值

    /*** 获取json中的值*/@Testvoid testAccessValue() {String data = "{\"age\":20,\"id\":1,\"name\":\"qx\",\"school\":{\"address\":\"南宁西乡塘区\",\"name\":\"广西大学\"}}";JSONObject jsonObject = JSONObject.parseObject(data);JSONObject school = jsonObject.getJSONObject("school");String name = school.getString("name");// 输出 广西大学System.out.println(name);}

http://www.lryc.cn/news/146383.html

相关文章:

  • python scrapy框架
  • 滑动窗口系列3-Leetcode134题加油站
  • LOIC(low orbit ion cannon)
  • 从格灵深瞳中报稳定盈利,看AI公司的核心竞争力
  • 理解 Databend Cluster key 原理及使用
  • C++day3(类、this指针、类中的特殊成员函数)
  • Qt中的配置文件:实现个性化应用程序配置与保存加载
  • Navicat激活时出现rsa public key not find错误
  • FFmpeg5.0源码阅读——URLContext和URLProtocol
  • Qt的输出
  • 长胜证券:久违普涨再现 大盘回升有望加速
  • WPF .NET 7.0学习整理(一)
  • 数据分析简介
  • 解读未知:文本识别算法的突破与实际应用
  • [第七届蓝帽杯全国大学生网络安全技能大赛 蓝帽杯 2023]——Web方向部分题 详细Writeup
  • el-backtop返回顶部的使用
  • Go 官方标准编译器中所做的优化
  • C语言程序设计——小学生计算机辅助教学系统
  • SQL自动递增的列恢复至从0开始
  • 介绍一下CDN
  • 2023年最新 Github Pages 使用手册
  • docker 安装 Nginx
  • 【NLP的python库(01/4) 】: NLTK
  • Java IDEA Web 项目 1、创建
  • leetcode316. 去除重复字母(单调栈 - java)
  • 零散笔记:《Spring实战》Thymeleaf
  • WordArt Designer:基于用户驱动与大语言模型的艺术字生成
  • 【C进阶】深度剖析数据在内存中的存储
  • TortoiseGit安装
  • 巨人互动|游戏出海游戏出海的趋势如何