博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript的对象与Json
阅读量:4988 次
发布时间:2019-06-12

本文共 2302 字,大约阅读时间需要 7 分钟。

JSON有非常严格的语法,在string上下文里{ "prop": "val" } 是个合法的JSON,但{ prop: "val" }{ 'prop': 'val' }确实不合法的。所有属性名称和它的值都必须用双引号引住,不能使用单引号。在string上下文里使用带有大括号的JavaScript对象,那它就是JSON字符串,而如果在对象字面量上下文里使用的话,那它就是对象字面量

1 JSON.stringify(true);                // 'true' 2  3 JSON.stringify('foo');               // '"foo"' 4  5 JSON.stringify([1, 'false', false]); // '[1,"false",false]' 6  7 JSON.stringify({ x: 5 });            // '{"x":5}' 8  9  10 11 JSON.stringify(new Date(2006, 0, 2, 15, 4, 5)) // '"2006-01-02T15:04:05.000Z"'12 13  14 15 JSON.stringify({ x: 5, y: 6 });// '{"x":5,"y":6}' or '{"y":6,"x":5}'16 17 JSON.stringify([new Number(1), new String('false'), new Boolean(false)]);// '[1,"false",false]'18 19  20 21 JSON.stringify({ x: [10, undefined, function(){}, Symbol('')] }); // '{"x":[10,null,null,null]}'22 23  // Symbols:24 25 JSON.stringify({ x: undefined, y: Object, z: Symbol('') });// '{}'26 27 JSON.stringify({ [Symbol('foo')]: 'foo' });// '{}'28 29 JSON.stringify({ [Symbol.for('foo')]: 'foo' }, [Symbol.for('foo')]);// '{}'30 31 JSON.stringify({ [Symbol.for('foo')]: 'foo' }, function(k, v) {32 33   if (typeof k === 'symbol') {34 35     return 'a symbol';36 37   }});// '{}'38 39 // Non-enumerable properties:40 41 JSON.stringify( Object.create(null, { x: { value: 'x', enumerable: false }, y: { value: 'y', enumerable: true } }) );// '{"y":"y"}'42 43 function replacer(key, value) {44 45   // Filtering out properties46 47   if (typeof value === "string") {48 49     return undefined;50 51   }52 53   return value;}54 55 var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};56 57 JSON.stringify(foo, replacer);// '{"week":45,"month":7}'58 59 JSON.stringify(foo, ['week', 'month']);  // '{"week":45,"month":7}', only keep "week" and "month" properties60 61

 

 

如果字符串化对象有一个属性叫tojson其值是一个函数,然后tojson()方法自定义JSON字符串化所带来的行为,而不是被序列化的对象,返回的值将被序列化tojson()方法调用时。例如

1 var obj = { 2  3   foo: 'foo', 4  5   toJSON: function() { 6  7     return 'bar'; 8  9   }};10 11 JSON.stringify(obj);        // '"bar"'12 13 JSON.stringify({ x: obj }); // '{"x":"bar"}'

 

 

5JSON.parse()

JSON.parse('{}');              // {}

JSON.parse('true');            // true

JSON.parse('"foo"');           // "foo"

JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]

JSON.parse('null');            // null

 

转载于:https://www.cnblogs.com/coversky/p/6289163.html

你可能感兴趣的文章
SpringCloud之旅第一篇-微服务概念
查看>>
管理信息系统课程设计
查看>>
STM32F103移植uCOSIII始终卡在PendSV或Systick处解决办法
查看>>
【Tomcat 6.0官方文档翻译】—— 简介
查看>>
Vue.js组件的通信之子组件向父组件的通信
查看>>
Mongodb部署
查看>>
配置当前用户使用豆瓣pip源
查看>>
Linux定时执行PHP
查看>>
如何创建响应的jQuery图像网格效果
查看>>
Eclipse安装与使用
查看>>
使用Log4j日志工具
查看>>
移动端input输入placeholder垂直不居中
查看>>
焦旭超201771010109《面向对象程序设计(java)》第七周学习总结
查看>>
PHP 反射API说明
查看>>
Cortex-M 实现互斥操作的三种方法
查看>>
in 和 exists的区别
查看>>
Vuex异步请求数据后,在组件中获取状态的方法
查看>>
汤姆大叔文章列表
查看>>
【刷题】BZOJ 5293 [Bjoi2018]求和
查看>>
PowerShell 远程执行任务
查看>>