JSON.stringify 语法实例讲解

2023-11-11

语法: 
  JSON.stringify(value [, replacer] [, space]) 

  • value:是必选字段。就是你输入的对象,比如数组,类等。 
  • replacer:这个是可选的。它又分为2种方式,一种是数组,第二种是方法。 

  情况一:replacer为数组时,通过后面的实验可以知道,它是和第一个参数value有关系的。一般来说,系列化后的结果是通过键值对来进行表示的。 所以,如果此时第二个参数的值在第一个存在,那么就以第二个参数的值做key,第一个参数的值为value进行表示,如果不存在,就忽略。

  情况二:replacer为方法时,那很简单,就是说把系列化后的每一个对象(记住是每一个)传进方法里面进行处理。 

  • space:就是用什么来做分隔符的。 

  1)如果省略的话,那么显示出来的值就没有分隔符,直接输出来 。
  2)如果是一个数字的话,那么它就定义缩进几个字符,当然如果大于10 ,则默认为10,因为最大值为10。
  3)如果是一些转义字符,比如“\t”,表示回车,那么它每行一个回车。 
  4)如果仅仅是字符串,就在每行输出值的时候把这些字符串附加上去。当然,最大长度也是10个字符。 
下面用实例说明;

  1)只有第一个参数的情况下

//1
var student = new Object(); 
student.name = "Lanny"; 
student.age = "25"; 
student.location = "China"; 
var json = JSON.stringify(student); 
alert(json); 
//alert(student);

  结果如下图:

  有些人可能会怀疑JSON.stringify的作用。那假如,我们不要这个函数,而直接alert(student),结果如下:

 

  这次意识到JSON.stringify的作用了吧。

  2)第二个参数存在,并且第二个参数还是function的时候 

//2
var students = new Array() ; 
students[0] = "onepiece"; 
students[1] = "naruto"; 
students[2] = "bleach"; 
var json = JSON.stringify(students,switchUpper); 
function switchUpper(key, value) { 
    return value.toString().toUpperCase(); 
} 
alert(json); 
/*下面这种方式也可以
var json = JSON.stringify(students, function (key,value) { return value.toString().toUpperCase()}); 
alert(json);
*/

  运行结果如下:

  3)第二个参数存在,并且第二个参数不是function,而是数组的时候

//3
var stuArr1 = new Array() ; 
stuArr1[0] = "onepiece"; 
stuArr1[1] = "naruto"; 
stuArr1[2] = "bleach"; 
var stuArr2 = new Array(); 
stuArr2[0] = "1"; 
stuArr2[1] = "2"; 
var json = JSON.stringify(stuArr1,stuArr2)
alert(json); 

  运行结果如下:

  第二个参数被忽略了,只是第一个参数被系列化了。

  4)如果第一个参数是对象,第二个参数是数组的情况

//4
var stuObj = new Object(); 
stuObj.id = "20122014001"; 
stuObj.name = "Tomy"; 
stuObj.age = 25; 

var stuArr = new Array(); 
stuArr[0] = "id"; 
stuArr[1] = "age"; 
stuArr[2] = "addr";//这个stuObj对象里不存在。 

var json = JSON.stringify(stuObj,stuArr); 
//var json = JSON.stringify(stuObj,stuArr,1000); 
//var json = JSON.stringify(stuObj,stuArr,'\t'); 
//var json = JSON.stringify(stuObj,stuArr,'OK '); 
alert(json); 

  运行结果如下:

  第三个参数为数字时候的输出结果:

  第三个参数为转义字符\t的时候输出的结果:

  第三个参数为字符串时候的输出结果:

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JSON.stringify 语法实例讲解 的相关文章

随机推荐

  • WebService代码

    http git oschina net huangyong cxf demo
  • Python打包命令

    创建虚拟环境 conda create n auto python 3 8 激活虚拟环境 conda activate conda activate auto 查看已经创建的虚拟环境列表 conda info envs 查看已经安装的依赖库
  • python实现字符串去重

    题目 输入一串数据 删除重复的数据 注意 读取字符串的顺序为从右往左 如果结果是以0结束 则删除0 如果结果有负号 需要保留 去重思路 对于不含符号的字符串 2343 gt 转化绑定 index value 的元组列表 0 2 1 3 2
  • [网络通信] 什么是零拷贝?

    什么是零拷贝 文章目录 什么是零拷贝 1 Java 实现应用缓存零拷贝 2 底层零拷贝实现机制 2 1 mmap 2 2 sendfile 2 3 splice 小结 REFERENCES 我们在写一个服务端程序时 Web Server或者
  • 从键盘输入n名学生数据,转存到磁盘文件,然后回显

    最近一个同学要我跟她写这个程序 我自己写的不咋地 权当看看得了 include
  • 【计算机视觉

    文章目录 一 检测相关 18篇 1 1 LaRS A Diverse Panoptic Maritime Obstacle Detection Dataset and Benchmark 1 2 Far3D Expanding the Ho
  • C++中使用初始化列表出现原因

    1 必须这样做 如果我们有一个类成员 它本身是一个类或者是一个结构 而且这个成员它只有一个带参数的构造函数 而没有默认构造函数 这时要对这个类成员进行初始化 就必须调用这个类成员的带参数的构造函数 如果没有初始化列表 那么他将无法完成第一步
  • 暑假数论专题

    Prime Distance 给定两个整数 L R 求闭区间 L R 中相邻两个质数差值最小的数对与差值最大的数对 当存在多个时 输出靠前的素数对 多组数据 每行两个数 L R Input Output 2 17 14 17 2 3 are
  • Java用ssm开发家教系统家教网站家教兼职系统功能很齐全

    简介 用户可以注册成为学员也可以是教员 教员发布家教信息 学员根据自己的要求查找符合自己的教员 学员预约教员的某一天去家教 教员可以在个人中心里查看 是否接受该预约 在教员接受或拒绝之前 学员随时可以取消该预约 若教员不处理改预约 则该预约
  • Android开发入门教程

    当涉及到 Android 开发入门教程时 以下是一个详细的大纲 包含了一些常见的实践和指导 1 Android 概述 介绍 Android 平台的基本概念和特点 解释 Android 应用的组成和架构 说明 Android 应用的开发环境和
  • 文献管理工具之 Jabref vs Zotero 与 Zotero 使用 markdown

    本文章为自创文章 未获允许请勿随意转载 转载请带上出处 谢谢合作 本文链接 https blog csdn net qq 48019718 article details 114642743 0 前言 最近闲来无事 等信息 ing 就在做毕
  • 时间推送练习

    1 同一个数轴X上有两个点的集合A A1 A2 Am 和B B1 B2 Bn Ai和Bj均为正整数 A B已经按照从小到大排好序 A B均不为空 给定一个距离R 正整数 列出同时满足如下条件的所有 Ai Bj 数对 Ai lt Bj Ai
  • 优越数

    include
  • linux外接光驱下载文件,Linux 从光驱拷贝文件以及加载新的硬盘

    加载光驱 1 将ISO文件放到光盘中 点击确定 2 连接光驱 如果是虚拟机 菜单VM gtsetting gtHardware gt选CD DVD gtConnection 3 将光驱加载到一个目录下 要先mount root lvs dr
  • SDN初创公司Big Switch获得Intel的650万美元融资,挑战思科的网络技术霸权

    原文地址 http www 36kr com p 201289 html SDN 软件定义网络 公司Big Switch Networks今天从 Intel Capital 手中拿到一笔 650 万美元的融资 这笔融资让 Big Switc
  • 换了个数据结构,一不小心把系统性能提升了10倍以上

    很多Java开发同学经常有一个疑惑 搞Java开发也需要懂算法吗 本文咱们就来谈谈这个问题 其实如果你开发一个非常复杂而且有挑战的大型系统 那么必然会在系统中使用算法 同理 如果你可以将算法进行合理的优化 那么也可以将系统性能提升几十倍 空
  • 生成新的数据列:使用R语言进行数据处理

    生成新的数据列 使用R语言进行数据处理 在数据分析和统计建模中 我们经常需要对现有数据进行处理和转换 以生成新的数据列来满足分析需求 R语言是一种功能强大的数据分析和统计建模工具 提供了各种函数和技术来处理数据 本文将介绍如何使用R语言生成
  • BSD协议和FreeBSD

    BSD协议 开放分类 BSD 协议 开源 BSD是 Berkely Software Distribution 的缩写 意思是 伯克利软件发行版 显然 BSD这个名称并不是我们现在所理解的操作系统 而且其原意也并非简单的操作系 统 而是一整
  • 通过smtplib和email发送验证码到电子邮箱(Python3.7.X)

    使用前需要在发送方的邮箱里开启POP3 SMTP服务 这里以QQ邮箱为例 设置 账户 开启服务 获得授权码 以下案例模拟发送一串纯文本的6位数字验证码 比较简单易懂 可在此基础上再完善 效果演示 代码展示 coding utf 8 impo
  • JSON.stringify 语法实例讲解

    语法 JSON stringify value replacer space value 是必选字段 就是你输入的对象 比如数组 类等 replacer 这个是可选的 它又分为2种方式 一种是数组 第二种是方法 情况一 replacer为数