使用JavaScript处理XML基本上就是一个杯具,这也是JSON在程序开发中广受欢迎的原因。我曾经写过一个 JavaScript函数来将XML转换为JSON,那种duangduang~的痛点简直是折腾得你欲死欲仙。如果要将现有的对象转换为JSON字符串, 则可以使用 JSON.stringify(obj)
函数, 可能你已经用过这个函数(在IE6,IE7中不支持)。但可能你还不知道在转换时可以通过参数控制生成漂亮的JSON格式!
其实很简单,就是通过 JSON.stringify
函数的第三个参数来指定缩进的空格数:
// 此处为了示例, 采用字面量的形式构造了一个对象
// 实际使用中, 一般是某个POJO,或者VO之类的值对象
var myObject = {
"myProp": "myValue",
"subObj": {
"prop": "value"
}
};
// 格式化: 序列化: 对象转换为字符串
var formattedStr = JSON.stringify(myObject, null, 2);
// 2个空格; 等效;
var formattedStr2 = JSON.stringify(myObject, null, " ");
// 输出日志
console.log(formattedStr);
// console中执行, 拷贝到剪贴板
copy(formattedStr);
// 反序列化: 字符串转换为对象;
var obj2 = JSON.parse(formattedStr);
console.dir(obj2);
生成的字符串如下所示:
{
"myProp": "myValue",
"subObj": {
"prop": "value"
}
}
需求: 比对2个JSON消息 背景: 2个JSON的key顺序不一致
执行步骤:
- 打开JSON排序页面: https://www.bejson.com/json/jsonsort/
- 粘贴JSON, 选择升序, 复制右侧代码;
- 打开并粘贴到JSON比对页面: https://www.sojson.com/jsondiff.html
- 重复 1、2步骤, 将结果粘贴到步骤3的页面右侧中.
- 查看比对结果。
原文链接: Indent JSON with JavaScript
原文日期: 2015年03月02日
翻译日期: 2015年03月09日
翻译人员: 铁锚 https://blog.csdn.net/renfufei/article/details/44156509