JSON——JavaScript 中的使用
由于JSON非常简单,很快就风靡Web世界,并且成为ECMA标准。几乎所有编程语言都有解析JSON的库,而在JavaScript中,我们可以直接使用JSON,因为JavaScript内置了JSON的解析。
把任何JavaScript对象变成JSON,就是把这个对象序列化成一个JSON格式的字符串,这样才能够通过网络传递给其他计算机。
如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了。
序列化(JS对象——>JSON)
让我们先把小明这个对象序列化成JSON格式的字符串:
var xiaoming = {name: '小明',age: 14,gender: true,height: 1.65,grade: null, 'middle-school': '\"W3C\" Middle School',skills: ['JavaScript', 'Java', 'Python', 'Lisp'] };JSON.stringify(xiaoming);
要输出得好看一些,可以加上参数,按缩进输出:
JSON.stringify(xiaoming, null, ' ');
结果:
{"name": "小明","age": 14,"gender": true,"height": 1.65,"grade": null,"middle-school": "\"W3C\" Middle School","skills": [ "JavaScript", "Java", "Python", "Lisp"] }
第二个参数用于控制如何筛选对象的键值,如果我们只想输出指定的属性,可以传入Array
:
JSON.stringify(xiaoming, ['name', 'skills'], ' ');
结果:
{"name": "小明","skills": [ "JavaScript", "Java", "Python", "Lisp"] }
还可以传入一个函数,这样对象的每个键值对都会被函数先处理:
function convert(key, value) {if (typeof value === 'string') { return value.toUpperCase();} return value; }JSON.stringify(xiaoming, convert, ' ');
上面的代码把所有属性值都变成大写:
{"name": "小明","age": 14,"gender": true,"height": 1.65,"grade": null,"middle-school": "\"W3C\" MIDDLE SCHOOL","skills": [ "JAVASCRIPT", "JAVA", "PYTHON", "LISP"] }
如果我们还想要精确控制如何序列化小明,可以给xiaoming
定义一个toJSON()
的方法,直接返回JSON应该序列化的数据:
var xiaoming = {name: '小明',age: 14,gender: true,height: 1.65,grade: null, 'middle-school': '\"W3C\" Middle School',skills: ['JavaScript', 'Java', 'Python', 'Lisp'],toJSON: function () {return { // 只输出name和age,并且改变了key:'Name': this.name, 'Age': this.age};} };JSON.stringify(xiaoming); // '{"Name":"小明","Age":14}'
反序列化
拿到一个JSON格式的字符串,我们直接 用JSON.parse()
把它变成一个JavaScript对象:
JSON.parse('[1,2,3,true]'); // [1, 2, 3, true]JSON.parse('{"name":"小明","age":14}'); // Object {name: '小明', age: 14}JSON.parse('true'); // trueJSON.parse('123.45');// 123.45
JSON.parse()
还可以接收一个函数,用来转换解析出的属性:
JSON.parse('{"name":"小明","age":14}', function (key, value) {// 把number * 2:if (key === 'name') { return value + '同学';} return value; }); // Object {name: '小明同学', age: 14}
转载于:https://www.cnblogs.com/zjfjava/p/6843137.html
JSON——JavaScript 中的使用相关推荐
- JSON—JavaScript中的JSON
JSON的数据格式 JavaScript中的JSON 1.JavaScript与JSON JSON是一种语法,用来序列化对象.数组.数值.字符串.布尔值 null.他基于JavaScript语法,但与 ...
- js html保存json,如何在json文件中存储jQuery或javascript变量?
我可以知道有没有机会将jquery变量保存在json文件中?提前致谢.如何在json文件中存储jQuery或javascript变量? 我: var image='/test/test.png'; 我 ...
- JavaScript中的JSON
JSON是什么? JSON格式(JavaScript Object Notation 的缩写)是一种用于数据交换的文本格式.就是符合某种规范的文本格式,经常用于与服务器做数据交换,比传统的XML更简洁 ...
- 在JavaScript中解析JSON? [重复]
本文翻译自:Parse JSON in JavaScript? [duplicate] This question already has answers here : 这个问题已经在这里有了答案 : ...
- 服务器json文件怎么创建对象,JavaScript中对JSON对象的基本操作示例
JSON对象 1.对象的属性:对象的属性是有键值对组成的,其中key为一个字符串,value可以为任何的Javascript对象. //使用[]设置和获取对象的属性 var obj = new Obj ...
- Json学习总结(1)——Java和JavaScript中使用Json方法大全
2019独角兽企业重金招聘Python工程师标准>>> 摘要:JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它基于ECMAScript ...
- 在 JavaScript 中创建 JSON 对象
<html> <body> <h2>在 JavaScript 中创建 JSON 对象</h2><p> Name: <span id=& ...
- jsonp请求html页面,JavaScript中的JSON和JSONP
简单地使用json并不能支持跨域资源请求,为了解决这个问题,需要采用jsonp数据交互协议.众所周知,js文件的调用不受跨域与否的限制,因此如果想通过纯web端跨域访问数据,只能在远程服务器上设法将j ...
- javascript中对象、JSON格式数据、创建对象的方式、数据类型分类及特点
对象 对象指:具体的一个实物,javascript中对象是指一组没有顺序的属性和方法的集合,所有的事物都是对象,例如:函数,数组,字符串等.属性指事物的特征,一般为名词表示:方法指对象的行为,一般用动 ...
- 【JavaScript】在JavaScript中使用JSON进行序列化/反序列化操作
文章目录 用于stringfy/parse操作的"JSON"对象 JavaScript中简单数据类型的JSON序列化操作 使用toJSON()进行对象的序列化操作 使用eval() ...
最新文章
- 使用回调函数实现图像阈值分析。程序运行后在屏幕中输入阈值,通过改变滑动条实现不同类型的二值化图。
- 微博云原生技术的思考与实践
- Oracle后台进程
- 使用fpm简单制作自定义rpm包
- 【学亮IT手记】oracle集合运算
- linux 限制连接时间,linux抵御DDoS攻击方法 通过iptables限制TCP连接和频率
- Flink AggOperatorWholeWin 全窗口聚合函数
- 计算机网络学习笔记(3. 计算机网络结构)
- MyStringTokenize
- QTCreator快捷键
- HDU 6351 (Beautiful Now) 2018 Multi-University Training Contest 5
- 分布式架构之缓存系统
- WinForm主窗口框架的设计
- PcShare服务端改造
- Fedora35安装ibus-rime并配置五笔86方案
- 本周测试服务器角色转移系统仅开放转入,梦幻西游3月11日更新一览
- 精油商城小程序,让您的品牌更出彩!
- Prometheus(二)基础概念
- 4.网络设备基础配置实验
- substring与substr的区别
热门文章
- 鸿蒙2.0内测版手机版,不再遮遮掩掩,鸿蒙2.0测试版下月发布,用于手机内测
- PHP Default value for parameters with a class type hint can only be NULL
- Java中递归复制多级文件夹(IO流)
- 基于springboot+vue的智慧教室预约系统(前后端分离)
- java基础总结03-进制
- 自定义rest api的基本思想过程--总结
- 小D课堂 - 新版本微服务springcloud+Docker教程_2_02 微服务核心基础讲解
- 阶段1 语言基础+高级_1-3-Java语言高级_07-网络编程_第2节 TCP协议_1_TCP通信的概述(上)...
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_3_等待唤醒案例代码实现...
- user 不在 sudoers 文件中。此事将被报告。