一篇文章教会你JavaScript json 解析-天天新视野
时间:2023-06-26 14:08:42来源:程序员客栈
点击上方“前端进阶学习交流”,进行关注

回复“前端”即可获赠前端相关学习资料


(资料图)

疾风知劲草,板荡识诚臣。JSON的一个常见用途是交换数据到从一个Web服务器,当从web服务器接收数据时,数据总是一个字符串。使用JSON.parse()方法解析这些数据,数据变成JavaScript对象。一、浏览器支持

JSON.parse() 函数包括所有主要的浏览器和最新的ECMAScript(JavaScript)标准:

浏览器支持
Firefox 3.5 ,Internet Explorer 8 ,Chrome, Opera 10 ,Safari 4
二、实例 - 解析JSON1. 页面解析

想象一下,我们从Web服务器收到这个文本:

"{ "name":"John", "age":30, "city":"New York"}"

使用JavaScript函数JSON.parse() 将文本转换成JavaScript对象:

var obj = JSON.parse("{ "name":"John", "age":30, "city":"New York"}");

注:确保文字是用JSON格式,否则你会得到一个语法错误。

在你的页面中使用JavaScript对象:

项目JSON解析文本

2. 从服务器获得JSON

你可以使用AJAX请求从服务器获得JSON。

只要来自服务器的响应是用JSON格式,您可以将字符串解析成JavaScript对象。

Ajax是什么?

Asynchronous JavaScript & XML。Ajax是web开发的一种技术。

var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {myObj = JSON.parse(this.responseText);document.getElementById("demo").innerHTML = myObj.name;}};xmlhttp.open("GET", "json_demo.txt", true);xmlhttp.send();

服务器端 访问成功!将JSON解析的内容保存在json_demo.txt。

3. 数组作为JSON

当使用JSON.parse()方法的使用, 该方法将返回一个JavaScript数组, 而不是一个JavaScript对象.

var xmlhttp = new XMLHttpRequest();xmlhttp.onreadystatechange = function() {if (this.readyState == 4 && this.status == 200) {myArr = JSON.parse(this.responseText);document.getElementById("demo").innerHTML = myArr[0];}};xmlhttp.open("GET", "json_demo_array.txt", true);xmlhttp.send();

为了方便测速,自己创建了json_demo_array.txt文件。

json_demjo_array.txt

三、拓展解析日期(2种)

在JSON中,日期对象是不允许的。

如果需要包含日期,请将其写成字符串.

1. 将其转换为日期对象:

var text = "{ "name":"John", "birth":"1986-12-14", "city":"New York"}";var obj = JSON.parse(text) {obj.birth = new Date(obj.birth);document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

2.使用JSON.parse()函数的第二个参数, 称为接收器

该接收机参数,返回值之前,检查每个属性。

var text = "{ "name":"John", "birth":"1986-12-14", "city":"New York"}";var obj = JSON.parse(text, function (key, value) {if (key == "birth") {return new Date(value);} else {return value;}});document.getElementById("demo").innerHTML = obj.name + ", " + obj.birth;

解析函数

在JSON中不允许函数.

如果你需要包含一个函数,写成字符串。

以后您可以将其转换为函数:

var text = "{ "name":"John", "age":"function () {return 30;}", "city":"New York"}";var obj = JSON.parse(text) {obj.age = eval("(" + obj.age + ")");document.getElementById("demo").innerHTML = obj.name + ", " + obj.age();

避免在JSON使用函数,函数将失去他们的范围,你将不得不使用eval()将它们转换回函数。

四、总结

本文基于JavaScript ,介绍了 json 解析在实际的应用。如何去解析一个JSON文件,从三个方面进行了讲解。在实际过程中遇到的难点,提供了有效的解决方案。最后拓展,希望对JSON解析有了进一步的了解,使用JavaScript 语言,效果图动展示,希望能够让读者更好的理解。

代码很简单,希望能够帮助你更好的学习。

------------------- End -------------------

往期精彩文章推荐:

盘点JavaScript中数组遍历的全部方式(上篇)盘点JavaScript中数组遍历的全部方式(下篇)一篇文章带你了解JavaScript日期

欢迎大家点赞,留言,转发,转载,感谢大家的相伴与支持

想加入前端学习群请在后台回复【入群】

万水千山总是情,点个【在看】行不行

标签:

生活指南
  • 焦点滚动:宁波建工个股怎么样?宁波建工后期走势如何?

    宁波建工个股怎么样根据赢家江恩星级评定模型,给予宁波建工(601789

  • 考古学家发现 5.7 万年前岩画,考证认为出自尼安德特人之手 -当前短讯

    IT之家6月25日消息,关于尼安德特人(Neanderthals)的行业共识之一是

  • 600210股票行情股吧,600208股票行情 世界观察

    本文内容是由小编为大家搜集关于600210股票行情股吧,以及600208股票行

  • 天天观焦点:2023最新工伤赔偿标准是什么?工伤多久能做伤残鉴定?

    2023最新工伤赔偿标准是什么?1、医疗费,从工伤保险基金支付;2、住

  • 当前播报:海南小户型多少钱一平(椰海温泉嘉苑二期值得买吗)

    椰海温泉嘉苑二期值得买吗,海南小户型多少钱一平,椰海温泉嘉苑二期房

  • 平舆县老王岗乡召开燃气安全集中排查工作部署会|全球短讯

    6月22日下午,平舆县老王岗乡召开由班子成员、各村支部书记、乡应急办

  • 奥美达官网(奥美网站序列号)|全球热门

    1、从里面选一个写上就好了58V2E-CCKCJ-B8VSE-MEW9Y-ACB2K5Z62E-79JDV-

  • 再获11亿美元投资:蔚来“长期主义”的底气-环球微速讯

    再获11亿美元投资:蔚来“长期主义”的底气

  • 刚刚,普京发表讲话,指责“瓦格纳”负责人“叛国”!称将采取坚决手段恢复秩序,俄军已收到命令...... 世界即时看

    24小时财经资讯平台,依托新锐财经日报《每日经济新闻》(NationalBusin

  • 每日热讯!端午假期交通部门加强多种出行方式联动

    央视网消息(新闻联播):今天(6月23日)是端午假期的第二天,全国铁

  • 推动品牌建设上台阶

    推动品牌建设上台阶---品牌是高质量发展的重要标志,也是商业竞争和文

  • 【天天热闻】梦想小镇玫瑰_玫瑰小镇天使羽翼

    1、收获240朵水仙、250朵橙玫瑰和240朵青玫瑰。2、就可以获得1666魅力

  • “蓝色引擎”凸显 2022年山东海洋生产总值1.6万亿|世界热门

    “蓝色引擎”作用凸显2022年山东海洋生产总值首次突破万亿元山东省人民

  • 视焦点讯!微视频|家国情长

    端午时节,抚今追昔,感受家国情怀。在爱国情怀中培育爱国精神,在爱国

  • 揭阳惠来县公安局自2021年9月1日起从严整治摩电交通秩序

    2021年9月1日起,惠来县所有符合相关国家标准的“摩电”,须到公安交警

  • 银川烧烤店爆炸事故:店长等9人被控制!银川金凤区:全部暂时关停!-天天观热点

    新华社银川6月22日电(记者刘海、许晋豫)记者从宁夏回族自治区党委获

  • 民生
    • 全球讯息:白俄罗斯总统分别与俄罗斯总统及哈萨克斯坦首任总统通话

    • 台山市海宴中学_海宴除了琅琊榜还有什么书

    • 高考结束迎来“驾考热”,警方提醒小心这些诈骗套路!

    • 中央气象台:华北高温略微减弱,南方本轮强降雨近尾声