前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目。不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html。
今天来说一说Spring的@Controller和@RestController控制器, 他们是如何响应客户端请求,如何返回json数据。
2024年10月01日
前面介绍了Spring Boot的优点,然后介绍了如何快速创建Spring Boot 项目。不清楚的朋友可以看看之前的文章:https://www.cnblogs.com/zhangweizhong/category/1657780.html。
今天来说一说Spring的@Controller和@RestController控制器, 他们是如何响应客户端请求,如何返回json数据。
2024年10月01日
我们生产开发过程中,经常遇到json和xml的显示问题,比如
接口返回的数据内容,是压缩的json格式,不好清晰查看。
网上也有不少类似的在线工具,这里,我整理了关键的实现代码
1、Json的格式化和压缩:
// Json的格式化和压缩 //
function execFormatJson(txt, compress) {
// txt:json的字符串内容
// compress:是否压缩
// false:格式化
// true:压缩显示
// 格式化需要的间隔 //
let indentChar = ' ';
if (/^\s*$/.test(txt)) {
alert('数据为空,无法格式化! ');
return;
}
let data = null;
try {
data = eval('(' + txt + ')');
} catch (e) {
alert('数据源语法错误,格式化失败! 错误信息: ' + e.description, 'err');
return;
}
// 绘制最近结果 //
let draw = [];
let last = false;
let line = compress ? '' : '\n';
let nodeCount = 0;
// 最深的层次 //
let maxDepth = 0;
let notify = function(name, value, isLast, indent, formObj) {
// name:节点名 //
// value:节点值 //
// isLast:是否最后节点 //
// indent:缩进次数 //
// formObj:是否object项 //
// 节点计数
++nodeCount;
let tabIndex = 0
let tab = '';
if (compress) {
tab = '';
} else {
for (tabIndex = 0; tabIndex < indent; ++tabIndex) {
// 缩进HTML //
tab += indentChar;
}
}
// 缩进递增并记录 //
++indent;
maxDepth = indent;
if (value && value.constructor == Array) {
// 处理数组 //
// 缩进'[' 然后换行 //
draw.push(tab + (formObj ? ('"' + name + '":') : '') + '[' + line);
let valueArrayIndex = 0;
let valueArrayIsLast = false;
for (valueArrayIndex = 0; valueArrayIndex < value.length; ++valueArrayIndex) {
valueArrayIsLast = false;
if (valueArrayIndex == value.length - 1) {
valueArrayIsLast = true;
}
notify(valueArrayIndex, value[valueArrayIndex], valueArrayIsLast, indent, false);
}
// 缩进']'换行,若非尾元素则添加逗号 //
draw.push(tab + ']' + (isLast ? line : (',' + line)));
} else if (value && typeof value == 'object') {
// 处理对象 //
// 缩进'{' 然后换行 //
draw.push(tab + (formObj ? ('"' + name + '":') : '') + '{' + line);
// 节点个数 //
let keyLen = 0;
let valueIndex = 0;
for (let key in value) {
++keyLen;
}
let valueIsLast = false;
for (let key in value) {
if (valueIndex == keyLen - 1) {
valueIsLast = true;
} else {
valueIsLast = false;
}
++valueIndex;
notify(key, value[key], valueIsLast, indent, true);
}
// 缩进'}'换行,若非尾元素则添加逗号 //
draw.push(tab + '}' + (isLast ? line : (',' + line)));
} else {
if (typeof value == 'string') {
value = '"' + value + '"';
}
draw.push(tab + (formObj ? ('"' + name + '":') : '') + value + (isLast ? '' : ',') + line);
};
};
let isLast = true;
let indent = 0;
notify('', data, isLast, indent, false);
return draw.join('');
}
2024年10月01日
通过JDK API,可以通过java.beans.XMLEncoder和XMLDecoder将对象序列化/反序列化为XML。XMLEncoder API依赖于Java反射来发现对象的字段,并将它们以XML格式写入。这个类可以编码遵守Java Beans契约的对象(https://docs.oracle.com/javase/tutorial/javabeans/writing/index.html)。基本上,对象的类应该包含一个公共的无参构造函数和用于私有/受保护字段/属性的公共getter和setter。XMLEncoder/XMLDecoder实现Serializable不是强制性的,因此我们可以序列化/反序列化不实现Serializable的对象。以下是一个将给定对象编码为XML的辅助方法:
2024年10月01日
JavaScript对象标记是基于键值对和有序列表的结构化数据基于文本的表示。尽管JSON源自JavaScript,但它在大多数主要的编程语言中都是通过本地或库来支持的。JSON通常用于在Web客户端和Web服务器之间交换信息。
在过去15年,JSON已经在网络上普遍存在。今天,它几乎是所有公开Web服务的首选格式,同时也经常用于私人网络服务。
JSON的受欢迎程度导致许多数据库的本机JSON支持。关系数据库,如PostgreSQL和MySQL,现在支持存储和查询JSON数据。MongoDB和Neo4j等NoSQL数据库也支持JSON,尽管MongoDB在后台使用了稍微修改后的JSON二进制版本。
2024年10月01日
国庆长假即将结束了,今天,本喵带大家学学Python中操纵JSON的知识。学完本文,你可以学到如下内容:
1、JSON是什么?
2、JSON与XML的优劣差异?
3、将Python对象编码成JSON字符串
4、将已编码的JSON字符串解码为Python对象
5、解决JSON中文乱码问题
JSON是什么?
JSON的全称是 JavaScript Object Notation,是一种轻量级的数据交换格式。最初,JSON 只是 JavaScript 的子集,但由于其简单易用而迅速走红。
2024年10月01日
JSON(Javascript Object Notation)是一种轻量级的数据交换语言, 以文字为基础, 具有自我描述性且易于让人阅读。
尽管JSON是Javascript的一个子集, 但JSON是独立于语言的文本格式, 并且采用了类似于C语言家族的一些习惯。
JSON与XML最大的不同在于XML是一个完整的标记语言, 而JSON不是。JSON由于比XML更小、更快, 更易解析, 以及浏览器的内建快速解析支持, 使得其更适用于网络数据传输领域。
2024年10月01日
正文
前言
SpringMVC是目前主流的Web MVC框架之一。
现象
本文使用的demo基于maven,是根据入门blog的例子继续写下去的。
我们先来看一看对应的现象。我们这里的配置文件 *-dispatcher.xml中的关键配置如下(其他常规的配置文件不在讲解,可参考本文一开始提到的入门blog):
2024年10月01日
近日,使用迅雷下载资源的小伙伴们都遇到“任务出错”的情况。
有些网友可是不相信这是迅雷的bug,分别用了迅雷9、迅雷7、迅雷极速版。
结果依旧发现:BT资源无法下载。此时内心是崩溃的~
根据迅雷论坛官方14号晚给予的回应,预计到11月1号才修复好。
那么我们最近可以用什么下载资源呢?下面w3cschool将给小伙伴们分享获得网友高分、好评的5大下载神器。
2024年10月01日
Markdown主要作用是把纯文本的文章转化成富文本,使读者阅读起来时更加的清晰明了。下面,W3Cschool小师妹为大家分享10款常用的Markdown编辑器。这些编辑器有不同的定位、分类,如果你喜欢的话,快来mark吧!
编辑器一:MarkdownEditor
这款Markdown 文本编辑器,它的功能相当简单而且实用。此外,MarkdownEditor还是基于浏览器。
编辑器二:markPad
这款 Markdown 编辑器是开源的,你可以在GitHub以及自己的博客中打开和保存文档。你只需要把图片复制粘贴到Markdown 的文档当中就可以了。
2024年10月01日
强烈推荐http://www.w3school.com.cn/js/
不需要买其他参考书籍了。
如果有网络,直接在线看,没有网络的,只需要下载此书离线版,这是一本真正的前端工程师的葵花宝典。网友如果实在不会下载离线版,留下邮箱,我愿意分享给大家。
打开网站第一页,就告诉我们什么是JavaScript语言。
JavaScript 是属于网络的脚本语言!
JavaScript 被数百万计的网页用来改进设计、验证表单、检测浏览器、创建cookies,以及更多的应用。