理解JSON.stringify()高级用法
一:JSON.stringify()
该方法是把javascript对象转换成json字符串。
基本语法:JSON.stringify(value, [, replacer], [, space])
value: 必选字段,指输入的对象,比如数组这些。
replacer,该参数是可选的,它可以有两种类型,第一种是数组,第二种是函数方法。
space: 该参数的含义是指使用什么来做分隔符的。
1)如果该参数省略的话,那么显示出来的值是没有分隔符的。
2)如果是一个数字的话,那么它的含义是 缩进几个字符的意思,最大值为10.
3)如果是一个转义字符的话,比如 '\t', 表示回车,那么它每行一个回车。
4)如果是字符串的话,那么每行输出值的时候把这些字符串附加上去,最大长度也是10个字符。
下面是一个简单的json对象,如下代码:
var json = {
"name": "kongzhi",
"age": "30",
"lists": [
{"name": "xxx1", "age": "28"},
{"name": "xxx2", "age": "29"},
{"name": "xxx3", "age": "30"}
]
};
1) 只有一个参数值的情况下;如下代码:
<!DOCTYPE html>
<html>
<head>
<title>演示Vue</title>
<style> </style>
</head>
<body>
<script type="text/javascript">
var json = {
"name": "kongzhi",
"age": "30",
"lists": [
{"name": "xxx1", "age": "28"},
{"name": "xxx2", "age": "29"},
{"name": "xxx3", "age": "30"}
]
};
var result = JSON.stringify(json);
// 输出结果为 {"name":"kongzhi","age":"30","lists":[{"name":"xxx1","age":"28"},{"name":"xxx2","age":"29"},{"name":"xxx3","age":"30"}]}
console.log(result);
</script>
</body>
</html>
2.1)第二个参数存在,且第二个参数是数组。
如果第二个参数是数组,并且第二个参数的值在第一个数据中存在的话,那么它就会以第二个参数的值当做key,第一个参数的值为value表示。如果第二个参数数组有多项的话,以此类推...,如果不匹配数据的话,则忽略。如下代码:
<!DOCTYPE html>
<html>
<head>
<title>演示Vue</title>
<style> </style>
</head>
<body>
<script type="text/javascript">
var json = {
"name": "kongzhi",
"age": "30",
"lists": [
{"name": "xxx1", "age": "28"},
{"name": "xxx2", "age": "29"},
{"name": "xxx3", "age": "30"}
]
};
var arrs = ['lists', 'name'];
var result = JSON.stringify(json, arrs);
// 输出结果为 {"lists":[{"name":"xxx1"},{"name":"xxx2"},{"name":"xxx3"}],"name":"kongzhi"}
console.log(result);
</script>
</body>
</html>
2.2)第二个参数存在,且第二个参数是方法
如果第二个参数是一个方法的话,那么该函数会有两个参数,key和value,我们可以在函数内部改变json数据的值,如下代码:
<!DOCTYPE html>
<html>
<head>
<title>演示Vue</title>
<style> </style>
</head>
<body>
<script type="text/javascript">
var json = {
"name": "kongzhi",
"age": "30",
"lists": [
{"name": "xxx1", "age": "28"},
{"name": "xxx2", "age": "29"},
{"name": "xxx3", "age": "30"}
]
};
var result = JSON.stringify(json, function(key, value) {
switch(key) {
case "name":
return 'longen';
case "age":
return '31';
default:
return value;
}
});
// 输出结果为 {"name":"longen","age":"31","lists":[{"name":"longen","age":"31"},{"name":"longen","age":"31"},{"name":"longen","age":"31"}]}
console.log(result);
</script>
</body>
</html>
3)第三个参数存在
第二个参数如果不传的话,可以写null, 第三个参数是控制json字符串缩进的,它可以是数字或字符串,数字最多可以缩进10个,如果传入的是字符串的话,则会使用这个字符串当做缩进符来代替空格。
3.1 数字(控制json字符串缩进的,几个数字代表几个缩进) 如下代码:
<!DOCTYPE html>
<html>
<head>
<title>演示Vue</title>
<style> </style>
</head>
<body>
<script type="text/javascript">
var json = {
"name": "kongzhi",
"age": "30",
"lists": [
{"name": "xxx1", "age": "28"},
{"name": "xxx2", "age": "29"},
{"name": "xxx3", "age": "30"}
]
};
var result = JSON.stringify(json, null, 4);
/*
输出结果为:
{
"name": "kongzhi",
"age": "30",
"lists": [
{
"name": "xxx1",
"age": "28"
},
{
"name": "xxx2",
"age": "29"
},
{
"name": "xxx3",
"age": "30"
}
]
}
*/
console.log(result);
</script>
</body>
</html>
3.2 字符串(控制json字符串缩进的,字符串的话,则会使用这个字符串当做缩进符来代替空格),如下代码:
<!DOCTYPE html>
<html>
<head>
<title>演示Vue</title>
<style> </style>
</head>
<body>
<script type="text/javascript">
var json = {
"name": "kongzhi",
"age": "30",
"lists": [
{"name": "xxx1", "age": "28"},
{"name": "xxx2", "age": "29"},
{"name": "xxx3", "age": "30"}
]
};
var result = JSON.stringify(json, null, 'aa');
/*
输出结果为:
{
aa"name": "kongzhi",
aa"age": "30",
aa"lists": [
aaaa{
aaaaaa"name": "xxx1",
aaaaaa"age": "28"
aaaa},
aaaa{
aaaaaa"name": "xxx2",
aaaaaa"age": "29"
aaaa},
aaaa{
aaaaaa"name": "xxx3",
aaaaaa"age": "30"
aaaa}
aa]
}
*/
console.log(result);
</script>
</body>
</html>
理解JSON.stringify()高级用法的更多相关文章
- JSON.parse()与JSON.stringify()高级用法
JSON.parse()与JSON.stringify是将JSON对象与字符串互相转换的方法,它们还有一些参数可以让我们在实际应用中更加方便,现在介绍一下它们的高级用法 JSON.parse() JS ...
- Newtonsoft.Json 的高级用法
Ø 简介 接着前一篇http://www.cnblogs.com/abeam/p/8295765.html,继续研究 Newtonsoft.Json 的一些高级用法.主要包括: 1. JSON ...
- JSON.stringify常见用法
转摘于其他博客 var data =[ { name: "金",sex:"1",age:26 }, { name: "才",sex:&quo ...
- JSON.parse()和JSON.stringify() 的用法区别
parse用于从一个字符串中解析出json对象,如 var str = '{"name":"huangxiaojian","age":&qu ...
- JSON.parse()和JSON.stringify()的用法
JSON.parse()是用于从一个字符串中解析出json对象,如下所示 var str = '{"name":"flsummer","age&quo ...
- JSON.stringify实战用法
1.首先定义一个数组 var teamPlanMinList = new Array(); 2. 定义一个json对象 var json = { "plname":plname, ...
- JSON.stringify()的用法
**JSON.stringify() 方法用于将 JavaScript 值转换为 JSON 字符串,而我们一般只是用了第一个参数,没有在意过第二个以及第三个参数的妙用** **1.最常用的方式:** ...
- Jmeter 中JSON Path Extractor高级用法
好久没玩jemter了,由于项目原因又重新拾起.在使用JSON Path Extractor(jmeter 4.0已经默认支持了,4.0以下要自行安装插件)时,可以进行条件过滤,不用再自行写shell ...
- Newtonsoft.Json高级用法之枚举中文转义
最近看博客园中 焰尾迭的两篇关于"Newtonsoft.Json高级用法"的文章受到了很多人的评论,一度登入到头条推荐. 今天我就不再重复焰尾迭博文中的一些提过的Newtonsof ...
随机推荐
- mysql实践总结
首先介绍mysql的安装和基本使用.进阶操作.讲解mysql的导入导出和自动备份,然后介绍安全模式修改密码和mysql的全文本搜索功能,最后记录了个人使用mysql中遇到的问题集,闲暇时我也会多看几次 ...
- Docker-compose networks 的例子
今天实验了下 docker 下的网络设置,记录一下过程,以免后面忘记. (系统:Centos 7.4 ,docker 版本:18.03.1-ce, docker-compose version 1.1 ...
- PHP7.27: object
http://www.devshed.com/c/a/PHP/PHP-Services-Layers-Data-Mappers/ https://stackoverflow.com/questions ...
- Installing Fonts programatically C#
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...
- 2017-10-29 用中文命名API的意义和途径
"中文编程"知乎专栏原链 在前文对在代码中使用中文命名的质疑与回应中阐述了在代码中使用中文命名的益处. 此文将从软件使用者的角度阐述对API中文化的意义并探讨实现途径. 当然, 文 ...
- 从零开始学习html(一) Html介绍
我是初学者,这个是我学习的过程,当做笔记记录下来,如有错误希望高手指正. 原地址 一.代码初体验,制作我的第一个网页 <!DOCTYPE HTML> <html> <he ...
- 关于BI商业智能的“8大问”|一文读懂大数据BI
这里不再阐述商业智能的概念了,关于BI,就从过往的了解,搜索以及知乎的一些问答,大家困惑的点主要集中于大数据与BI的关系,BI的一些技术问题,以及BI行业和个人职业前景的发展.这里归纳成8个问题点,每 ...
- loadrunner 场景设计-手工场景方案(Schedule)设计
场景设计-手工场景方案(Schedule)设计 by:授客 QQ:1033553122 A. 定义方案schedule 在 Scenario Schedule面板中,选择一个方案schedule, ...
- XSS(跨站脚本攻击)漏洞解决方案
首先,简单介绍一下XSS定义: 一 . XSS介绍 XSS是跨站脚本攻击(Cross Site Scripting)的缩写.为了和层叠样式表CSS(Cascading Style Sheets)加以区 ...
- mysqlclient and mysql-python安装出错方法
Collecting mysql-python Using cached https://files.pythonhosted.org/packages/a5/e9/51b544da85a36a68d ...