什么是JSON
JSON:JavaScript Object Notation 【JavaScript 对象表示法】
JSON 是存储和交换文本信息的语法。类似 XML。
2024年10月01日
JSON:JavaScript Object Notation 【JavaScript 对象表示法】
JSON 是存储和交换文本信息的语法。类似 XML。
2024年10月01日
2024年10月01日
Go提供了对JSON编码和解码的内置支持,包括对内置和自定义数据类型的相互转换。
下面例子中使用两个结构来演示自定义类型的编码和解码。只有导出的字段将用于JSON编码/解码。要导出的字段必须以大写字母开头。
首先,我们将研究对基本数据类型到JSON字符串的编码。这里有一些基本类型的例子,还有一些切片和映射的例子,它们按照预期编码为JSON的数组和对象,JSON包还可以自动编码您的自定义数据类型。它只会把导出字段包含在输出的编码中,默认情况下将字段名用作JSON键名。也可以在结构字段声明上的使用tag标记自定义编码的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 的子集,但由于其简单易用而迅速走红。