JSON (JavaScript Object Notation) is a standard method to serialize JavaScript objects and is commonly used to transfer data from the server to the browser. The browser has a JSON API that allows you to serialize a JavaScript object or array into aJSON string. This API allows you to customize the serialization very specifically as well.

console.clear()

testValue()
testSpaces()
testFunctionReplacer()
testArrayReplacer()
testSymbolKeyedValues()
testNonEnumerableValue()
testToJSON() console.log('Tests passed') // function declarations
function testValue() {
var input = {
name: 'Kent C. Dodds',
username: 'kentcdodds',
}
var expected = '{"name":"Kent C. Dodds","username":"kentcdodds"}'
var result = JSON.stringify(input) expect(result).toEqual(expected)
} function testSpaces() {
var input = {
name: {
first: 'Kent',
middle: 'Christopher',
last: 'Dodds'
},
username: 'kentcdodds',
}
var expected = `{
"name": {
"first": "Kent",
"middle": "Christopher",
"last": "Dodds"
},
"username": "kentcdodds"
}`
var result = JSON.stringify(input, null, 2) expect(result).toEqual(expected)
} function testFunctionReplacer() {
var input = {
title: 'Gone with the Wind',
publishDate: new Date('1936-06-10'),
movieReleaseDate: new Date('1940-01-17'),
} var expected = '{"title":"Gone with the Wind","publishDate":"1936-06-10","movieReleaseDate":"1940-01-17"}' var result = JSON.stringify(input, replacer) expect(result).toEqual(expected) function replacer(key, value) {
// `this` is bound to the object in which the value was found
if (this[key] instanceof Date) {
return value.substring(0, 10)
}
return value
}
} function testArrayReplacer() {
var input = [
{id: 3, title: 'Inside Out', rating: 98, genres: ['Animation', 'Kids & Family']},
{id: 6, title: 'The Hunger Games', rating: 84, genres: [' Drama', 'Mystery & Suspense', 'Science Fiction & Fantasy']},
{id: 13, title: 'Catch Me If You Can', rating: 96, genres: ['Drama', 'Action & Adventure']},
]
var expected = '[{"id":3,"title":"Inside Out"},{"id":6,"title":"The Hunger Games"},{"id":13,"title":"Catch Me If You Can"}]'
var result = JSON.stringify(input, ['id', 'title']) expect(result).toEqual(expected)
} function testSymbolKeyedValues() {
var input = {foo: 'foo'}
var barSymbol = Symbol('bar')
input[barSymbol] = 'bar' var expected = '{"foo":"foo"}'
var result = JSON.stringify(input) expect(result).toEqual(expected)
} function testNonEnumerableValue() {
var input = Object.create(null, {
theAnswer: {
value: 42,
enumerable: true
},
theQuestion: {
value: 'Who knows...',
enumerable: false
}
}) var expected = '{"theAnswer":42}'
var result = JSON.stringify(input) expect(result).toEqual(expected)
} function testToJSON() {
var input = {
name: {
first: 'Dave',
middle: 'James',
last: 'Smith',
toJSON: function(key) {
return {awesomeName: `The Awesome ${this.first} ${this.middle} ${this.last}`}
console.log(key, this)
},
},
username: 'djsmith42',
} var expected = '{"name":{"awesomeName":"The Awesome Dave James Smith"},"username":"djsmith42"}'
var result = JSON.stringify(input) expect(result).toEqual(expected)
}

[Javascript] The JSON.stringify API的更多相关文章

  1. (八)JavaScript之[JSON]与[void]

    14].JSONJSON 格式在语法上与创建 JavaScript 对象代码是相同的. 方法:JSON.parse(); //将JSON字符串转换为JavaScript对象JSON.stringify ...

  2. JSON.stringify 函数 (JavaScript)

    在bsrck项目中,使用jQuery.Form.js的ajaxSubmit时,遇到有文件上传的form提交,在firefox和chrome浏览器中测试,报Bad Request的错误,经查代码后发现是 ...

  3. 有关javascript中的JSON.parse和JSON.stringify的使用一二

    有没有想过,当我们的大后台只是扮演一个数据库的角色,json在前后台的数据交换中扮演极其重要的角色时,作为依托node的前端开发,其实相当多的时间都是在处理数据,准确地说就是在处理逻辑和数据(这周实习 ...

  4. JavaScript -- JSON.parse 函数 和 JSON.stringify 函数

    JavaScript -- JSON.parse 函数 和 JSON.stringify 函数 1. JSON.parse 函数: 使用 JSON.parse 可将 JSON 字符串转换成对象. &l ...

  5. JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

    JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象

  6. JSON 字符串转换为JavaScript 对象.JSON.parse()和JSON.stringify()

    使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象: var text = '{ "sites" : [' + '{ &qu ...

  7. ZH奶酪:JavaScript中的JSON.stringify() and JSON.parse()

    JSON.stringify() JSON.stringify()可以将任意的JavaScript值序列化成JSON字符串. 语法 JSON.stringify(value[, replacer [, ...

  8. javascript 中的JSON.stringify - 将对象和数组转换为json格式(来源于网络)

          JSON.stringify 函数 (JavaScript) 将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串.     JSON.stringi ...

  9. javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())

    javascript 数组和对象的浅度复制和深度复制在平常我们用 ‘=’来用一个变量引用一个数组或对象,这里是‘引用’而不是复制下面我们看一个例子引用和复制是什么概念 var arr=[1,2,3,' ...

随机推荐

  1. Nginx的安装及简单配置

    Nginx安装 1.下载相关组件 yum install -y gcc gcc-c++                                   #安装C/C++编译器 yum -y ins ...

  2. Linux中/etc/passwd文件与/etc/shadow文件解析.

    此文章转载自"慧可",用来学习. 1. /etc/passwd文件 1.1 /etc/passwd文件内容格式 用户名: 密码 : uid  : gid :用户描述:主目录:登陆s ...

  3. NHibernate之映射文件配置说明(转载2)

    六.鉴别器   在"一棵对象继承树对应一个表"的策略中,<discriminator>元素是必需的, 它定义了表的鉴别器字段. 鉴别器字段包含标志值,用于告知持久化层应 ...

  4. javascript 闭包的理解

    1 需要明白概念: 执行环境 变量对象,活动对象 作用域,作用域链 闭包 垃圾处理机制 闭包陷阱

  5. java泛型中? super T和? extends T的区别

    <? super T>表示包括T在内的任何T的父类,<? extends T>表示包括T在内的任何T的子类;请记住PECS原则:生产者(Producer)使用extends,消 ...

  6. Objective-C基础之──多态

    Objective-C语言是面向对象的高级编程语言,因此,它具有面向对象编程所具有的一些特性,即:封装性.继承性和多态性. 今天介绍一下Objective-C中的多态性. 一.什么是多态 多态:不同对 ...

  7. php时间戳与时间转换

    PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4) 所以存到数据库也有两种形式了(真正不止,我的应用就两种),时间戳类型我是保存为字符串的,这个是 ...

  8. Sql Server批量停止作业

    CREATE Proc [dbo].[Proc_StopJob] as begin declare @I int declare @JobID uniqueidentifier -- 1. creat ...

  9. css3画苹果logo

    <!doctype html> <html> <head> <meta charset="utf-8"> <title> ...

  10. 未能在全局命名空间中找到类型或命名空间名称“Wuqi”

    下载了AspNetPager控件用以进行分页操作,在项目中放入控件后,运行报错:未能在全局命名空间中找到类型或命名空间名称“Wuqi” . 解决办法:在项目下拉框“引用“中添加AspNetPager引 ...