JSON简介

  • JSON(javaScript Object Notation) 一种简单的数据格式,比xml更轻巧。 JSON是javaScript原生格式。这意味着在 javaScript中处理JSON数据不需要任何特殊的API或工具包。
  • JSON的规则很简单:对象是一个无序的“‘名称/值’对”集合。一个对象以“{”(做括号)开始,“}”(右括号)结束。但每个“名称”后跟一个“ :”(冒号);“’名称/值‘对”之间使用“,”(逗号)分隔。

解析JSON

  • JSON只是一种文本字符串,它被存储在responsetext属性中
  • 为了读取存储在responseText属性中的JSON数据,需要根据javaScript对eval语句。函数eval会把一个字符串当作它对参数,然后这个字符串会被当作javaScript代码来执行。因为JSON 对字符串就是由javaScript代码构成的,所以它本身是可执行的
  • JSON提供了json.js包,下载http://www.json.org/json.js后,使用parseJSON()方法将字符串解析JS
var jsonResponse=xhr.responseText;var personObject=jsonResponse.parseJSON();var name=personObject.person.name;var website=personObject.person.website;var email=personObject.person.email;

JSON小结

优点:

  • 作为一种数据传输格式,JSON与XML很相似,但是它更加灵巧。
  • JSON不需要从服务器端发送含有特定内容类型的首部信息

缺点

  • 语法过于严谨
  • 代码不易读
  • eval函数存在风险

解析JSON文件代码示例

1、json数据(所在文件:json,js)代码:

{"person": {"name": "JBK","website": "http://baidu.com/","email": "15204510180@163.com"
}
}

2、解析代码:

<!doctype html>
<html lang="en">
<head><meta charset="UTF-8"><title>Document</title><script>window.onload = function () {var  as= document.getElementsByTagName("a");for(var i=0;i< as.length;i++){as[i].onclick= function () {var request = new XMLHttpRequest();var url = this.href;var method="GET";request.open(method,url);request.send(null);request.onreadystatechange= function () {if( request.readyState==4){if(request.status==200||request.status==304){                                var result=request.responseText;var objectJSON=eval("("+result+")");
//                                2、结果不能直接使用,必须先创建对应但节点,再把节点加入到#detail中
//                                目标格式为:
//                                      <h2><a href="mailto:15204510180@163.com">JBK</a></h2>
//                                      <a href="http://baidu.com/">http://baidu.com</a>var name=objectJSON.person.name;var website=objectJSON.person.website;var email=objectJSON.person.email;//alert(name);//alert(website);//alert(email);var aNode=document.createElement("a");aNode.appendChild(document.createTextNode(name));aNode.href="maelto:"+email;var hNode=document.createElement("h2");hNode.appendChild(aNode);var aNode1=document.createElement("a");aNode.appendChild(document.createTextNode(website));aNode.href=website;var dNode=document.getElementById("details");dNode.innerHTML="";dNode.appendChild(aNode);dNode.appendChild(aNode1)}}}return false;}}}</script>
</head>
<body>
<a href="json.js">1</a>
<a href="json.js">2</a>
<a href="json.js">3</a>
<a href="json.js">4</a>
<div id="details"></div></body>
</html>

三种数据格式对比小结

  • 若应用程序不需要与其他应用程序共享数据的时候,使用HTML片段来返回数据时最简单
  • 如果数据需要重用,JSON文件是个不错的选择,其在性能和文件大小方面有优势
  • 当远程应用程序未知时,XML文档是首选,因为XML是web服务器领域的“世界语”

Ajax拿取JSON格式的数据相关推荐

  1. $.ajax返回的JSON格式的数据后无法执行success的解决方法

    $.ajax返回的JSON格式的数据后无法执行success的解决方法 参考文章: (1)$.ajax返回的JSON格式的数据后无法执行success的解决方法 (2)https://www.cnbl ...

  2. Python爬虫 scrapy框架 爬取智联招聘,并把数据存入数据库,存为json格式的数据

    First:创建项目:执行下面三句命令: 1. scrapy startproject zhilianzhaopin2. cd zhilianzhaopin3.scrapy genspider zhi ...

  3. ajax调取mysql数据显示在html_jQuery+Ajax+js请求json格式数据并渲染到html页面

    json格式的数据文件有两种方式 一种是xxx.json文件 一种是xxx.php文件 前者是json格式的文件 后者是输出json格式的文件 前者是本地的文件 后者是获取数据库的数据再输出成json ...

  4. java异步请求显示数据格式_JSON(四)——异步请求中前后端使用Json格式的数据进行交互...

    json格式的数据广泛应用于异步请求中前后端的数据交互,本文主要介绍几种使用场景和使用方法. 一,json格式字符串 functionsentAjax(){ $.ajax({ type:'POST', ...

  5. 处理JSON格式的数据

    JSON格式的数据是最常用的数据格式,处理方法的选择就显得比较重要了.我常用的一种是用对象来接收,然后保存在数组中,需要时直接从数组中取值.下面列出一个小例子. 1.在.h文件中: #import & ...

  6. php 接收curl json数据格式,curl发送 JSON格式POST数据的接收,以及在yii2框架中的实现原理【精细剖析】...

    1.通过curl发送json格式的数据,譬如代码: function http_post_json($url, $jsonStr) { $ch = curl_init(); curl_setopt($ ...

  7. Spring MVC--自定义HttpMessageConverter接收JSON格式的数据

    替换默认的Jackson,使用fastjson来处理json格式的数据. index.jsp <%@ page language="java" contentType=&qu ...

  8. Spring MVC--接收JSON格式的数据

    Spring mvc使用开源的Jackson包来处理JSON格式的请求或相应消息. index.jsp <%@ page language="java" contentTyp ...

  9. [SoapUI] 通过SoapUI发送POST请求,请求的body是JSON格式的数据

    通过SoapUI发送POST请求,请求的body是JSON格式的数据: data={"currentDate":"2015-06-19","reset ...

最新文章

  1. 优酷土豆:财报不是问题!
  2. springboot 得到端口_带你入门SpringBoot
  3. 鸟哥的Linux私房菜(基础篇)-第一章、Linux是什么(一.2. Torvalds的Linux发展)
  4. 乐山市计算机学校太坑,乐山市计算机学校小规矩成就大素养
  5. 九章云极DataCanvas完成C轮融资:定义标准化AI基础架构未来
  6. Wordpress空间和域名的备份
  7. Ubuntu20.04搭建ftp服务(亲测通过)
  8. 12.9日个人工作总结
  9. [C#]Main(String[] args)参数输入问题
  10. 科工网大数据有力促进机器人制造业发展
  11. android截屏大小不一致,Android中的高分辨率屏幕截图
  12. 给hotmail邮箱发信(status=deferred)解决办法
  13. 【微信转账—设置付款时间问题】
  14. Win10 WLAN消失网络连接不上解决方法
  15. 最强思维导图训练营教程
  16. java多线程心法(基础概念)
  17. 面试十五年经验程序员,面试官沦为听众
  18. Mac安装指定版本的node
  19. andriod-概述
  20. 游戏场景设计干货:《纪念碑谷》潘洛斯视觉效果分析

热门文章

  1. 数据库崩溃后对redo log的使用
  2. 通俗理解生成对抗网络GAN
  3. ElasticSearch评分分析 explian 解释和一些查询理解
  4. RDD基本转换操作:zipWithIndex、zipWithUniqueId
  5. 微信公众平台消息接口开发(2)
  6. ibatis查询CHAR类型的字段
  7. mac安全与隐私只有两个选项,少了一个任何来源
  8. 通过项目逐步深入了解Mybatis二
  9. 【Linux安全】安全口令策略设置
  10. RequireJS入门(一) 转