教育后台管理系统:JSON
2021/10/25 23:39:42
本文主要是介绍教育后台管理系统:JSON,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
1 JSON简述
JSON(JavaScript Object Notation) JavaScript对象表示法(JSON源于JS)
JSON的特点:
-
JSON 是一种轻量级的数据交换格式。
-
JSON采用完全独立于语言的文本格式,就是说不同的编程语言JSON数据是一致的。
-
JSON易于人阅读和编写,同时也易于机器解析和生成(一般用于提升网络传输速率)。
2 XML与JSON的区别
-
XML : 可扩展标记语言,是一种用于标记电子文件使其具有结构性的标记语言。
-
JSON: (JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。
- 相同点:
- 它们都可以作为一种数据交换格式。
-
二者区别:
-
XML是重量级的,JSON是轻量级的,XML在传输过程中比较占带宽,JSON占带宽少,易于压缩。
-
XML和json都用在项目交互下,XML多用于做配置文件,JSON用于数据交互
-
JSON独立于编程语言存在,任何编程语言都可以去解析json
3 JSON语法格式
我们先来看一下JSON数据:
{ "id": 110, "name": "李会长", "age": 24 }
语法注意:
-
外面由{}括起来
-
数据以"键:值"对的形式出现(其中键多以字符串形式出现,值可取字符串,数值,甚至其他json对象)
-
每两个"键:值"对以逗号分隔(最后一个"键:值"对省略逗号
4. 参数值如果是string类型,就必须加引号,如果是数字类型,引号可加可不加
遵守上面4点,便可以形成一个json对象。
代码示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script typet="text/javascript" src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script> <script> //自定义JSON数据格式 (Java中的对象) var person = {"name":"tom","sex":"女", "age":12}; console.log(person); //数组格式 var persons = {"person":[{"name":"tom","sex":"女", "age":12},{"name":"jack","sex":"男", "age":22}]}; console.log(persons); //集合 var list = [{"name":"老五","sex":"女", "age":12},{"name":"会长","sex":"男", "age":12}]; console.log(list); </script> </head> <body> </body> </html>
4 JSON数据的转换
目前, 前后端的ajax通讯几乎用的都是json格式的了,所以在开发的过程中,我们经常会涉及到JSON数据的转换
4.1 FastJson介绍
-
Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。
-
FastJson特点如下:
-
能够支持将java bean序列化成JSON字符串,也能够将JSON字符串反序列化成Java bean。
-
顾名思义,FastJson操作JSON的速度是非常快的。
-
无其他包的依赖, 使用比较方便。
4.2 FastJson的使用
-
在Maven项目中使用FastJson库,需要提前在Maven的配置文件中添加此FastJson包的依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.3</version> </dependency> <dependency> <groupId>com.colobu</groupId> <artifactId>fastjson-jaxrs-json-provider</artifactId> <version>0.3.1</version> </dependency>
4.3 将 Java 对象转换为 JSON 格式
-
定义一个名为 Person 的 JavaBean类
public class Person { private String username; private int age; private String birthday; get/set }
-
可以使用 JSON.toJSONString() 将 Java 对象转换换为 JSON 对象:
public class TestFastJSON { //Java对象转JSON @Test public void javaBeanToJSON(){ //创建Person对象 Person p = new Person("码云",15, DateUtils.getDateFormart()); //使用JSON对象的 toString方法将对象转换为JOSN数据 String s = JSON.toJSONString(p); System.out.println(s); //{"age":15,"birthday":"2020-07-03 19:54:33","username":"码云"} } //List集合转Json @Test public void ListToJSON(){ //创建Person对象 Person p1 = new Person("码云",15, DateUtils.getDateFormart()); Person p2 = new Person("虎子",13, DateUtils.getDateFormart()); Person p3 = new Person("小斌",18, DateUtils.getDateFormart()); List<Person> list = new ArrayList<>(); Collections.addAll(list,p1,p2,p3); //使用JSON对象的 toString方法将对象转换为JOSN数据 String s = JSON.toJSONString(list); System.out.println(s); //[{"age":15,"birthday":"2020-07-03 19:59:05","username":"码云"},{"age":13,"birthday":"2020-07-03 19:59:05","username":"虎子"},{"age":18,"birthday":"2020-07-03 19:59:05","username":"小斌"}] } }
-
Fastjson中的 @JSONField 注解
-
通过 @JSONField 我们可以自定义字段的名称进行输出,并控制字段的排序,还可以进行序列化标记。
-
指定name属性, 字段的名称
-
使用 ordinal属性, 指定字段的顺序
-
使用 serialize属性, 指定字段不序列化
@Data public class Person { //自定义输出的名称, 并且进行输出排序 @JSONField(name="USERNAME",ordinal = 1) private String username; @JSONField(name="AGE",ordinal = 2) private int age; //排除不需要序列化的字段 @JSONField(serialize = false) private String birthday; public Person() { } public Person(String username, int age, String birthday) { this.username = username; this.age = age; this.birthday = birthday; } }
4.4 JSON 字符串转换为 Java 对象
-
JSON.parseObject()
-
可以使用 JSON.parseObject() 将 JSON 字符串转换为 Java 对象。
-
注意反序列化时为对象时,必须要有默认无参的构造函数,否则会报异常
-
-
JSON.parseArray()
-
可以使用 JSON.parseArray() 将 JSON 字符串转换为 集合对象。
-
//JSON转Java对象 @Test public void JSONToJavaBean(){ String json = "{\"age\":15,\"birthday\":\"2020-07-03 19:54:33\",\"username\":\"码云\"}"; Person person = JSON.parseObject(json, Person.class); System.out.println(person); //创建Person对象 String json2 ="[{\"age\":15,\"birthday\":\"2020-07-03 19:59:05\",\"username\":\"码云\"},{\"age\":13,\"birthday\":\"2020-07-03 19:59:05\",\"username\":\"虎子\"},{\"age\":18,\"birthday\":\"2020-07-03 19:59:05\",\"username\":\"小斌\"}]"; List<Person> list = JSON.parseArray(json2,Person.class); System.out.println(list); }
这篇关于教育后台管理系统:JSON的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16Vue3资料:新手入门必读教程
- 2024-11-16Vue3资料:新手入门全面指南
- 2024-11-16Vue资料:新手入门完全指南
- 2024-11-16Vue项目实战:新手入门指南
- 2024-11-16React Hooks之useEffect案例详解
- 2024-11-16useRef案例详解:React中的useRef使用教程
- 2024-11-16React Hooks之useState案例详解
- 2024-11-16Vue入门指南:从零开始搭建第一个Vue项目
- 2024-11-16Vue3学习:新手入门教程与实践指南
- 2024-11-16Vue3学习:从入门到初级实战教程