10分钟学会js处理json的常用方法


Posted in Javascript onDecember 06, 2020

一、json定义

JSON ( JavaScript Object Notation) ,它是一串字符串 只不过元素会使用特定的符号标注。

  • {} 双括号表示对象
  • [] 中括号表示数组
  • "" 双引号内是属性或值
  • : 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)

JSON 语法是 JavaScript 对象表示法语法的子集。
数据在名称/值对中、数据由逗号分隔、花括号保存对象、方括号保存数组

JSON 值可以是:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null

所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象

二、为什么用json

  1. JSON是纯文本格式,是独立于语言和平台的。
  2. 生成和解析相对于XML而言要简单。
  3. 读写的速度更快。

三、JS 内置两个Json方法

1、对象转化为字符串

任何把 JavaScript 变成 Json ,就是把这个对象序列化为Json字符串,然后才可以通过网络传递;

JSON.stringify( {} , [ ] , "")

//参数一 :要序列化的数据(object)
//参数二 :控制对象的键值,只想输出指定的属性,传入一个数组
//参数三 :序列化后,打印输出的格式(一个Tab ,可以更直观查看json)

例子:

10分钟学会js处理json的常用方法

2、字符串转换为对象

如果我们收到一个JSON格式的字符串,只需要把它反序列化成一个JavaScript对象,就可以在JavaScript中直接使用这个对象了

JSON.parse( json.DATA )

//传入json字符串

10分钟学会js处理json的常用方法

四、全局替换字符串

这里我们需要用JS实现replaceAll的功能, 将所有的 ' xa" ' 替换成 ' " ' .
代码如下,这里的gm是固定的,g表示global,m表示multiple,也可以使用正则表达式

10分钟学会js处理json的常用方法

五、遍历json对象和json数组

1、遍历JSON对象

代码如下:

var packJson = {"name":"Liza", "password":"123"} ;
for(var k in packJson ){//遍历packJson 对象的每个key/value对,k为key
alert(k + " " + packJson[k]);
}

10分钟学会js处理json的常用方法

10分钟学会js处理json的常用方法

2、遍历JSON数组

代码如下:

var packJson = [{"name":"Liza", "password":"123"}, {"name":"Mike", "password":"456"}];
for(var i in packJson){//遍历packJson 数组时,i为索引
alert(packJson[i].name + " " + packJson[i].password);
}

10分钟学会js处理json的常用方法

10分钟学会js处理json的常用方法

附录

学习本就是一个不断模仿、练习、再到最后面自己原创的过程。

虽然可能从来不能写出超越网上通类型同主题博文,但为什么还是要写?
于自己而言,博文主要是自己总结。假设自己有观众,毕竟讲是最好的学(见下图)。

于读者而言,笔者能在这个过程get到知识点,那就是双赢了。
当然由于笔者能力有限,或许文中存在描述不正确,欢迎指正、补充!
感谢您的阅读。如果本文对您有用,那么请点赞鼓励。

10分钟学会js处理json的常用方法

到此这篇关于10分钟学会js处理json的常用方法的文章就介绍到这了,更多相关js处理json方法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
按下Enter焦点移至下一个控件的实现js代码
Dec 11 Javascript
《JavaScript函数式编程》读后感
Aug 07 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
Dec 04 Javascript
浅谈jQuery this和$(this)的区别及获取$(this)子元素对象的方法
Nov 29 Javascript
vue实现列表的添加点击
Dec 29 Javascript
JavaScript中for循环的几种写法与效率总结
Feb 03 Javascript
利用node.js爬取指定排名网站的JS引用库详解
Jul 25 Javascript
JavaScript引用类型Object常见用法实例分析
Aug 08 Javascript
关于JSON解析的实现过程解析
Oct 08 Javascript
在vue和element-ui的table中实现分页复选功能
Dec 04 Javascript
通过微信公众平台获取公众号文章的方法示例
Dec 25 Javascript
WebRTC记录音视频流(web技术分享)
Feb 24 Javascript
JavaScript中的几种继承方法示例
Dec 06 #Javascript
js调用网络摄像头的方法
Dec 05 #Javascript
浅谈Vue使用Elementui修改默认的最快方法
Dec 05 #Vue.js
vue+element_ui上传文件,并传递额外参数操作
Dec 05 #Vue.js
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 05 #Javascript
解决vue下载后台传过来的乱码流的问题
Dec 05 #Vue.js
js获取图片的base64编码并压缩
Dec 05 #Javascript
You might like
在Nginx上部署ThinkPHP项目教程
2015/02/02 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
浅谈PHP安全防护之Web攻击
2017/01/03 PHP
php数值转换时间及时间转换数值用法示例
2017/05/18 PHP
PHP ElasticSearch做搜索实例讲解
2020/02/05 PHP
HTML-CSS群中单选引发的“事件”
2007/03/05 Javascript
关于Aptana Studio生成自动备份文件的解决办法
2009/12/23 Javascript
js delete 用法(删除对象属性及变量)
2014/08/24 Javascript
JavaScript处理解析JSON数据过程详解
2015/09/11 Javascript
jQuery实现宽屏图片轮播实例教程
2015/11/24 Javascript
Javascript实现通过选择周数显示开始日和结束日的实现代码
2016/05/30 Javascript
js数组去重的hash方法
2016/12/22 Javascript
详解vue 实例方法和数据
2017/10/23 Javascript
vue实现底部菜单功能
2018/07/24 Javascript
angularjs模态框的使用代码实例
2019/12/20 Javascript
浅谈JavaScript中this的指向更改
2020/07/28 Javascript
Vue+Vant 图片上传加显示的案例
2020/11/03 Javascript
[01:00:54]TI4正赛第二日开场
2014/07/20 DOTA
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
Python中字典(dict)和列表(list)的排序方法实例
2014/06/16 Python
Python生成pdf文件的方法
2014/08/04 Python
Python的__builtin__模块中的一些要点知识
2015/05/02 Python
详解Python中open()函数指定文件打开方式的用法
2016/06/04 Python
Python 12306抢火车票脚本
2018/02/07 Python
Python cookbook(字符串与文本)针对任意多的分隔符拆分字符串操作示例
2018/04/19 Python
python如何制作英文字典
2019/06/25 Python
pycharm实现在虚拟环境中引入别人的项目
2020/03/09 Python
Python3标准库之threading进程中管理并发操作方法
2020/03/30 Python
Python中Qslider控件实操详解
2021/02/20 Python
HTML5实现表单自动验证功能实例代码
2017/01/11 HTML / CSS
详解WebSocket跨域问题解决
2018/08/06 HTML / CSS
班班通校本培训方案
2014/03/12 职场文书
争先创优活动总结
2014/08/27 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
Python字符串常规操作小结
2022/04/03 Python
nginx rewrite功能使用场景分析
2022/05/30 Servers