611、 spring boot输出 Json 数组
Java 中没有json,需要用对象转json结构,徒耗计算机资源。如有json的原生支持,将提高互联网执行速度。
现有互联网应用绝大部分都是json数据的传递,java不支持json,因此需要从其他类型转换为json,转换需要时间。
如java支持json,则学到此处,就可以构建淘宝应用了,但java不支持json,所以,后续几节讲解如何从其他类型转换为json数据。
此节与后续几节是前后端技术的关键,向来被西方封装为各种框架,僵化程序员思维,其原理简单,确因封装而复杂。如能突破前后端关系,可极大降低企业成本。
教学视频地址:
教学素材下载地址:
知识点:
json的定义
为什么要用json格式
自定义json格式
前后端通过 字符串 进行交流。
操作步骤:
Json的定义:
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
Json表达数据自由而灵活,例如,表达班级的学生
{
{‘id’:’1001′,’name’:’吴楚淮’},
{‘id’:’1002′,’name’:’黄嘉森’},
{‘id’:’1003′,’name’:’谢峰’},
{‘id’:’1004′,’name’:’杨思强’},
{‘id’:’1005′,’name’:’李思德’},
{‘id’:’1006′,’name’:’沈俊坚’},
{‘id’:’1007′,’name’:’陈楚涛’},
{‘id’:’1008′,’name’:’曾焕平’},
{‘id’:’1009′,’name’:’詹敏敏’},
{‘id’:’1010′,’name’:’林志雄’}
}
Json可以以树型结构表达数据:
{
“name”: “中国”,
“province”: [{
“name”: “黑龙江”,
“cities”: {
“city”: [“哈尔滨”, ” 大庆 “]
}
}, {
“name”: “广东”,
“cities”: {
“city”: [“广州”, “深圳”, ” 珠海 “]
}
}, {
“name”: “台湾”,
“cities”: {
“city”: [“台北”, ” 高雄 “]
}
}, {
“name”: “新疆”,
“cities”: {
“city”: [“乌鲁木齐”]
}
}]
}
前后端通过字符串进行交流。
前后端数据交流是通过字符串进行交流,前端向后端发送请求是字符串,后端返回给前端的数据是字符串。如何在后端把数组,列表等形式的数据拼接成json字符串的格式,是理解前后端技术的要点。
本节主要讲解后端返回给前端的数据格式,是理解前后端的基础,后续章节将介绍如何把各种类型的数据转换为json字符串,返回给前端。
源代码如下:
package cn.usestudio.controller;
import org.springframework.web.bind. annotation . Request Mapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
import com.alibaba.fastjson.JSON;
//一定要添加此标识,否则找不到首页,报错
@RestController
public class DirectoryController {
// helloworld 程序;
@RequestMapping(value = “/helloworld”)
public @ResponseBody String hello(){
//java不支持json数据类型,此处用字符串模拟json类型。在前端转换为json。
String z= “[{‘id’:’1001′,’name’:’吴楚淮’},”
+ “{‘id’:’1002′,’name’:’黄嘉森’},”
+ “{‘id’:’1003′,’name’:’谢峰’},”
+ “{‘id’:’1004′,’name’:’杨思强’},”
+ “{‘id’:’1005′,’name’:’李思德’},”
+ “{‘id’:’1006′,’name’:’沈俊坚’},”
+ “{‘id’:’1007′,’name’:’陈楚涛’},”
+ “{‘id’:’1008′,’name’:’曾焕平’},”
+ “{‘id’:’1009′,’name’:’詹敏敏’},”
+ “{‘id’:’1010′,’name’:’林志雄’}”
+ “]”;
//输出到控制台的系统函数
System.out.println(z);
//返回到浏览器端。
return z;
}
}