[Javascript] The JSON.stringify API
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的更多相关文章
- (八)JavaScript之[JSON]与[void]
14].JSONJSON 格式在语法上与创建 JavaScript 对象代码是相同的. 方法:JSON.parse(); //将JSON字符串转换为JavaScript对象JSON.stringify ...
- JSON.stringify 函数 (JavaScript)
在bsrck项目中,使用jQuery.Form.js的ajaxSubmit时,遇到有文件上传的form提交,在firefox和chrome浏览器中测试,报Bad Request的错误,经查代码后发现是 ...
- 有关javascript中的JSON.parse和JSON.stringify的使用一二
有没有想过,当我们的大后台只是扮演一个数据库的角色,json在前后台的数据交换中扮演极其重要的角色时,作为依托node的前端开发,其实相当多的时间都是在处理数据,准确地说就是在处理逻辑和数据(这周实习 ...
- JavaScript -- JSON.parse 函数 和 JSON.stringify 函数
JavaScript -- JSON.parse 函数 和 JSON.stringify 函数 1. JSON.parse 函数: 使用 JSON.parse 可将 JSON 字符串转换成对象. &l ...
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
- JSON 字符串转换为JavaScript 对象.JSON.parse()和JSON.stringify()
使用 JavaScript 内置函数 JSON.parse() 将字符串转换为 JavaScript 对象: var text = '{ "sites" : [' + '{ &qu ...
- ZH奶酪:JavaScript中的JSON.stringify() and JSON.parse()
JSON.stringify() JSON.stringify()可以将任意的JavaScript值序列化成JSON字符串. 语法 JSON.stringify(value[, replacer [, ...
- javascript 中的JSON.stringify - 将对象和数组转换为json格式(来源于网络)
JSON.stringify 函数 (JavaScript) 将 JavaScript 值转换为 JavaScript 对象表示法 (Json) 字符串. JSON.stringi ...
- javascript 数组和对象的浅复制和深度复制 assign/slice/concat/JSON.parse(JSON.stringify())
javascript 数组和对象的浅度复制和深度复制在平常我们用 ‘=’来用一个变量引用一个数组或对象,这里是‘引用’而不是复制下面我们看一个例子引用和复制是什么概念 var arr=[1,2,3,' ...
随机推荐
- easyui-form添加自定义表单验证
easyui自定义表单验证规则其实不是很复杂,只要重写一下重写 $.fn.validatebox.defaults.rules 自定义示例 $.extend($.fn.validatebox.defa ...
- html.css溢出
<!DOCTYPE html><!DOCTYPE html><html><head> <title></title> <m ...
- html5 canvas画进度条
这个ie8的兼容是个问题,ie8 的innerHTML有问题啊,添加两个附件吧 <!DOCTYPE html> <html> <head> <meta cha ...
- Android -------- 序列化器生成xml文件
- AngularJs练习Demo13Provider_factory
@{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name="viewport&quo ...
- RDD 重新分区,排序 repartitionAndSortWithinPartitions
需求:将rdd数据中相同班级的学生分到一个partition中,并根据分数降序排序. 此实例用到的repartitionAndSortWithinPartitions是Spark官网推荐的一个算子,官 ...
- php时间戳与时间转换
PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4) 所以存到数据库也有两种形式了(真正不止,我的应用就两种),时间戳类型我是保存为字符串的,这个是 ...
- JavaScript加密解密压缩工具
<script> a=62; function encode() { var code = document.getElementById('code').value; code = co ...
- 使用pcs api往免费的百度网盘上传下载文件
百度个人云盘空间大,完全免费,而且提供了pcs api供调用操作文件,在平时的项目里往里面保存一些文件是很实用的. 环境准备: 开通读写网盘的权限及获取access_token:http://blog ...
- JQuery 判断ie7|| ie8
if( $.browser.msie && ( $.browser.version == '7.0' || $.browser.version == '8.0'|| $.browser ...