JSON.stringify()

JSON 通常用于与服务端交换数据。

在向服务器发送数据时一般是字符串。

我们可以使用 JSON.stringify() 方法将 JavaScript 对象转换为字符串。

语法

JSON.stringify(value[, replacer[, space]])

参数说明:

  • value:

    必需, 一个有效的 JSON 字符串。

  • replacer:

    可选。用于转换结果的函数或数组。

    如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。

    如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。当 value 参数也为数组时,将忽略 replacer 数组。

  • space:

    可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 有可以使用非数字,如:\t。


JavaScript 对象转换

例如我们向服务器发送以下数据:

var obj = {"name":"runoob","alexa":10000,"site":"www.runoob.com"};

我们使用 JSON.stringify() 方法处理以上数据,将其转换为字符串:

var myJSON = JSON.stringify(obj);

myJSON 为字符串。

我们可以将 myJSON 发送到服务器:

实例

var obj = {"name":"runoob","alexa":10000,"site":"www.runoob.com"};varmyJSON = JSON.stringify(obj);document.getElementById("demo").innerHTML = myJSON;

JavaScript 数组转换

我们也可以将 JavaScript 数组转换为 JSON 字符串:

实例

var arr = ["Google","Runoob","Taobao","Facebook"];varmyJSON = JSON.stringify(arr);

myJSON 为字符串。

我们可以将 myJSON 发送到服务器:

实例

var arr = ["Google","Runoob","Taobao","Facebook"];varmyJSON = JSON.stringify(arr);document.getElementById("demo").innerHTML = myJSON;

异常

解析数据

JSON 不能存储 Date 对象。

JSON.stringify() 会将所有日期转换为字符串。

实例

var obj = {"name":"Runoob","initDate":newDate(),"site":"www.runoob.com"};varmyJSON = JSON.stringify(obj);document.getElementById("demo").innerHTML = myJSON;

之后你可以再将字符串转换为 Date 对象。


解析函数

JSON 不允许包含函数,JSON.stringify() 会删除 JavaScript 对象的函数,包括 key 和 value。

实例

var obj = {"name":"Runoob","alexa":function(){return10000;},"site":"www.runoob.com"};varmyJSON = JSON.stringify(obj);document.getElementById("demo").innerHTML = myJSON;

我们可以在执行 JSON.stringify() 函数前将函数转换为字符串来避免以上问题的发生:

实例

var obj = {"name":"Runoob","alexa":function(){return10000;},"site":"www.runoob.com"};obj.alexa = obj.alexa.toString();varmyJSON = JSON.stringify(obj);document.getElementById("demo").innerHTML = myJSON;

不建议在 JSON 中使用函数。


浏览器支持

主流浏览器都支持 JSON.stringify() 函数:

  • Firefox 3.5
  • Internet Explorer 8
  • Chrome
  • Opera 10
  • Safari 4

JSON学习笔记(五)- JSON.stringify()相关推荐

  1. 【AngularJs学习笔记五】AngularJS从构建项目开始

    为什么80%的码农都做不了架构师?>>>    #0 系列目录# AngularJs学习笔记 [AngularJs学习笔记一]Bower解决js的依赖管理 [AngularJs学习笔 ...

  2. python函数是一段具有特定功能的语句组_Python学习笔记(五)函数和代码复用

    本文将为您描述Python学习笔记(五)函数和代码复用,具体完成步骤: 函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Pyth ...

  3. Ethernet/IP 学习笔记五

    Ethernet/IP 学习笔记五 Accessing data within a device using a non-time critical message (an explicit mess ...

  4. StackExchange.Redis学习笔记(五) 发布和订阅

    StackExchange.Redis学习笔记(五) 发布和订阅 原文:StackExchange.Redis学习笔记(五) 发布和订阅 Redis命令中的Pub/Sub Redis在 2.0之后的版 ...

  5. 吴恩达《机器学习》学习笔记五——逻辑回归

    吴恩达<机器学习>学习笔记五--逻辑回归 一. 分类(classification) 1.定义 2.阈值 二. 逻辑(logistic)回归假设函数 1.假设的表达式 2.假设表达式的意义 ...

  6. 好程序员教程分析Vue学习笔记五

    好程序员教程分析Vue学习笔记五,上次我们学习了Vue的组件,这次我们来学习一下路由的使用.在Vue中,所谓的路由其实跟其他的框架中的路由的概念差不多,即指跳转的路径. 注意:在Vue中,要使用路由, ...

  7. ROS学习笔记五:理解ROS topics

    ROS学习笔记五:理解ROS topics 本节主要介绍ROS topics并且使用rostopic和rqt_plot命令行工具. 例子展示 roscore 首先运行roscore系列服务,这是使用R ...

  8. Spring Boot 框架学习笔记(五)( SpringSecurity安全框架 )

    Spring Boot 框架学习笔记(五) SpringSecurity安全框架 概述 作用 开发示例: 1. 新建项目 2. 引入依赖 3. 编写`SecurityConfig`类,实现认证,授权, ...

  9. Java学习笔记(五):一张图总结完JVM8基础概念

    Java学习笔记(五):一张图总结完JVM8基础概念 引文 最近在学习JVM的相关内容,好不容易把基础概念全部都学了一遍,却发现知识网络是零零散散的.迫不得已,只好再来一次总的归纳总结.为了更好的理解 ...

  10. Python学习笔记五:控制语句

    Python学习笔记五:控制语句 Pycharm 开发环境的下载安装配置_项目管理 控制语句 Pycharm 开发环境的使用 Pycharm 下载和安装 激活和选择不同UI 风格 创建项目和初始化配置 ...

最新文章

  1. BZOJ4350: 括号序列再战猪猪侠
  2. cv::inRange的作用,注意它的区间是闭区间,而不是开区间...
  3. 焦旭超 201771010109《面向对象程序设计课程学习进度条》
  4. hiveql函数笔记(二)
  5. PHP游戏扫码登录器源码 支持一百多种热门游戏登录
  6. python安装完毕后,用pip安装,提示找不到ssl模块
  7. 《黑客秘笈——渗透测试实用指南(第2版)》—第2章2.7节总结
  8. lme4:用于混合效应模型分析的R包
  9. theano java_Theano:调用Theano函数的论据
  10. 用windows电脑制作macos系统安装U盘
  11. C专家编程 第9章 再论数组 9.6 C语言的多维数组
  12. Blast 几种方法的具体用法以及含义
  13. HDU 5234 DP背包
  14. Microsoft SQL Server 数据库使用(一)
  15. zepoto.js的使用
  16. 又一神作,Alibaba“M8级”大老总结微服务与事件驱动架构启蒙手册
  17. 在达内学java出来可靠吗_【求解】在达内学习java也有内幕啊 我要曝光!
  18. WPS如何使用VBA
  19. 数据仓库主题域如何划分
  20. 华为鸿蒙系统p50,华为p50自带鸿蒙是什么意思_华为p50是鸿蒙系统吗

热门文章

  1. java 日期是否合法_java 中 Date 类型快判断日期是否合法.
  2. java入门应该学什么_初学Java应该掌握哪些基础知识?
  3. 操作篇 ospf认识和应用
  4. xstream 数字映射不上去_6个做端口映射的步骤,外网访问内网,菜鸟也能做?
  5. SQL Server Management Studio Express出现一半中文一半英文的问题
  6. c语言小饭店等位就餐程序,C语言程序设计 C语言程序设计 3.C语言程序设计教案全部.doc...
  7. matlab应用大全二手,MATLAB应用大全(附光盘)-JobPlus
  8. python怎么设置代码执行时间_Python 2.x如何设置命令执行的超时时间实例
  9. python画同心圆程序_python – matplotlib:如何在给定的半径范围内绘制同心圆
  10. etcher制作mac启动盘_如何快速制作 macOS Mojave U盘启动盘,并重装Mac系统