JSON格式=》JavaScript Object Notation(对应前端,我觉得使用JSON格式就是啥都能存,然后直接传给后端,让后端去解析,这就很好体现了响应式开发模式,前端不直接对数据进行深度处理,而是通过后端进行处理)
{}=》对应为一个对象,通过键值对进行存储以及访问
{
"content": "1",
"correct": false
}发送一个包含id,name属性的对象
那么后端如果只接收这个对象
(@RequestBody Options(对象类型) options)即可
然后Options对象
@Data
public class Options(){
private Integer content;
private Boolean correct;
}
[]=》对应为一个数组,通过索引进行存储以及访问
[
{
"content": "1",
"correct": false
},
{
"content": "1",
"correct": false
},
{
"content": "1",
"correct": false
},
{
"content": "1",
"correct": true
}
]
附:一些前端传给后端参数的定义方式
QuestionDetail: { QuestionId: '', QuestionContent: '', QuestionType: '单选题', QuestionTheme:"" }, QuestionOption:{ Content1:{content:'', correct:false}, Content2:{content:'', correct:false}, Content3:{content:'', correct:false}, Content4:{content:'', correct:false} }, QuestionAllInfo:{ question:"", options:"" }
实际例子:
前端:
const questionData = { question:{ questionId: 4, questionContent: "12", questionType: "单选题", questionTheme: "12" }, options:[ { questionOption: "1", questionCorrect: false }, { questionOption: "11", questionCorrect: false }, { questionOption: "1", questionCorrect: true }, { questionOption: "1", questionCorrect: false } ] }
this.$ExamApi.addQuestions(questionData).then(res=>{ console.log(questionData) })
后端:
@Data public class Test { private Test1 question; private Listoptions; }
@Data public class Test1{ private Integer QuestionId; private String QuestionContent; private String QuestionType; private String QuestionTheme; }
@Data public class Test2 { private String QuestionOption; private boolean QuestionCorrect; }
@PostMapping("/exam/addQuestions") public void addQuestions(@RequestBody Test questionData) { System.out.println(questionData); // 在这里可以进行处理,比如存储题目信息到数据库 }
附:那为什么前端要转为JSON,而不直接传数组或者对象
在前端和后端之间传输数据时,常常使用JSON格式是因为JSON具有以下优点:
易于解析和序列化: JSON数据可以轻松地被解析成JavaScript对象,也可以被序列化成字符串进行传输。现代编程语言都提供了方便的JSON解析和序列化工具,使得数据的处理更加方便。
支持多种数据类型: JSON支持多种数据类型,包括字符串、数字、布尔值、数组和对象等,因此可以灵活地表示各种复杂的数据结构。
通用性: JSON是一种通用的数据交换格式,在各种不同的系统和平台上都得到了广泛支持。因此,使用JSON作为数据传输的格式可以提高系统的互操作性和扩展性。
文本格式: JSON是一种文本格式,易于阅读和理解,便于调试和排查问题。
虽然直接传输数组或对象也是可能的,但JSON作为一种通用的数据交换格式,更加灵活、通用且易于处理,因此在前端和后端之间传输数据时常常选择JSON格式。
那么JSON格式数据和对象和数组有什么差别,JSON格式数组又是什么意思
附:JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它由键值对组成,键值对之间用逗号分隔,键和值之间用冒号分隔。JSON有两种主要的数据结构:对象和数组。
对象(Object): 对象是由键值对组成的无序集合,其中每个键都是唯一的,键和值之间用冒号分隔。对象的键是字符串,值可以是字符串、数字、布尔值、对象或数组等其他JSON数据类型。对象使用花括号 {}
表示,键值对之间用逗号分隔,例如:{"name": "John", "age": 30, "isStudent": true}
。
数组(Array): 数组是由值组成的有序集合,每个值可以是字符串、数字、布尔值、对象或数组等其他JSON数据类型。数组使用方括号 []
表示,值之间用逗号分隔,例如:["apple", "banana", "orange"]
。
JSON格式数组指的是JSON数据结构中的数组部分,它表示一组有序的值的集合。每个值可以是任何合法的JSON数据类型,包括字符串、数字、布尔值、对象或其他数组。在JSON中,数组可以嵌套在对象中,也可以作为顶级结构出现。
总之,JSON格式数据可以是对象或数组,对象是无序的键值对集合,数组是有序的值集合。JSON格式数组指的是JSON数据结构中的数组部分,表示一组有序的值的集合。