Obtaining the JSON:

1.首先,我们将把要检索的JSON的URL存储在变量中。

2.要创建请求,我们需要使用new关键字从XMLHttpRequest构造函数创建一个新的请求对象实例。

3.现在我们需要使用open ( )方法(XMLHttpRequest.open():初始化请求。此方法将从JavaScript代码中使用;要从本机代码初始化请求,请改用OpenRequest ( )。)打开一个新的请求。添加以下行:

这至少需要两个参数——还有其他可选参数。对于这个简单的例子,我们只需要两个强制性的例子:

发出网络请求时使用的HTTP方法。在这种情况下,GET很好,因为我们只是检索一些简单的数据。

向其发出请求的URL——这是我们之前存储的JSON文件的URL。

4 .接下来,添加以下两行——在这里,我们将responsetType设置为JSON,这样XHR就知道服务器将返回JSON,并且这应该在幕后转换为JavaScript对象。

5 .本节的最后一部分涉及等待服务器返回响应,然后处理它。

代码如下:

<script>
2 var header = document.querySelector('header');
3 var section = document.querySelector('section');
4 var requestURL = 'https://raw.githubusercontent.com/Bulalalala-Ly/package/master/yinshi-json/1.json';
5 var request = new XMLHttpRequest();
6 request.open('GET', requestURL);
7 request.responseType = 'text';
8 request.send();
9 request.onload = function() {
10 var ownText = request.response;
11 var own = JSON.parse(ownText);
12 populateHeader(own);
13 showHeroes(own);
14 }
15 function populateHeader(jsonObj) {
16 var myH1 = document.createElement('h1');
17 myH1.textContent = jsonObj['Name'];
18 header.appendChild(myH1);
19 var myPara = document.createElement('p');
20 myPara.textContent = '导演 : ' + jsonObj['Director'] + ' / 首播时间: ' + jsonObj['formed'];
21 header.appendChild(myPara);
22 }
23 function showHeroes(jsonObj) {
24 var heroes = jsonObj['members'];
25
26 for (var i = 0; i < heroes.length; i++) {
27 var myArticle = document.createElement('article');
28 var myH2 = document.createElement('h2');
29 var myPara1 = document.createElement('p');
30 var myPara2 = document.createElement('p');
31 var myPara3 = document.createElement('p');
32 var myList = document.createElement('ul');
33
34 myH2.textContent = heroes[i].name;
35 myPara1.textContent = '简介 : ' + heroes[i].introduction;
36 myPara2.textContent = '出生日期: ' + heroes[i].birth;
37 myPara3.textContent = '代表作品 :';
38
39 var superPowers = heroes[i].masterworks;
40 for (var j = 0; j < superPowers.length; j++) {
41 var listItem = document.createElement('li');
42 listItem.textContent = superPowers[j];
43 myList.appendChild(listItem);
44 }
45
46 myArticle.appendChild(myH2);
47 myArticle.appendChild(myPara1);
48 myArticle.appendChild(myPara2);
49 myArticle.appendChild(myPara3);
50 myArticle.appendChild(myList);
51
52 section.appendChild(myArticle);
53 }
54 }
55 </script>

a JSON file base on own website:

代码如下:

{

"Name" : "剧名",

"Director" : "导演名",

"formed" : 播出年份,

"introduction" : "简介",

"active" : true,

"members" : [

{

"name" : "演员名",

"birth" : "出生年月",

"introduction" : "个人简介",

"masterworks" : [

"“代表作品名”",

"“代表作品名”",

"“代表作品名”"

]

},

{

"name" : "演员名",

"birth" : "出生年月",

"introduction" : "个人简介",

"masterworks" : [

"“代表作品名”",

"“代表作品名”",

"“代表作品名”"

]

},

{

"name" : "演员名",

"birth" : "出生年月",

"introduction" : "个人简介",

"masterworks" : [

"“代表作品名”",

"“代表作品名”",

"“代表作品名”"

  ]

}

]

}

 

web 11的更多相关文章

  1. D3_book 11.2 stack

    <!-- book :interactive data visualization for the web 11.2 stack 一个堆叠图的例子 --> <!DOCTYPE htm ...

  2. LinuxMysql命令操作数据库

    键入命令mysql -uroot -p密码查看所有表:mysql> show databases;进入表use multidomain_db;删除表:DROP table colour 执行sq ...

  3. 前端工程筹建NodeJs+gulp+bower

    1.安装nodejs nodejs 官网下载安装文件 安装完成之后,在命令窗口执行,(显示nodejs版本) 和(显示npm版本)可以使用这两个命令查看是否安装成功: node -v npm -v 2 ...

  4. cache应用(asp.net 2.0 SQL数据缓存依赖 [SqlCacheDependency ] )

    Asp.net 2.0 提供了一个新的数据缓存功能,就是利用sql server2005 的异步通知功能来实现缓存 1.首先在sqlserver2005 中创建一个test的数据库. 在SQL Ser ...

  5. 整合spring roo,maven,mybatis,spring-flex,blazeds,mysql

    1.      下载spring roo,设置环境变量ROO_HOME,和path,classpath. 使用CMD命令行找到工作区间,新建工程目录转到工程目录:mkdir ten-minutes $ ...

  6. 简单bat语法

    一.简单批处理内部命令简介 1.Echo 命令 打开回显或关闭请求回显功能,或显示消息.如果没有任何参数,echo 命令将显示当前回显设置. 语法 echo [{on off}] [message] ...

  7. 前端工程搭建NodeJs+gulp+bower

    需要node.npm的事先安装!! 1.nodejs安装程序会在环境变量中添加两个变量: 系统环境变量中:path 增加C:\Program Files\nodejs\ 因为在该目下存在node.ex ...

  8. [置顶] ANT build.xml文件详解

    Ant的优点 跨平台性.Ant是用Java语言编写的,所示具有很好的跨平台性. 操作简单.Ant是由一个内置任务和可选任务组成的. Ant运行时需要一个XML文件(构建文件). Ant通过调用targ ...

  9. Asp.Net Core WebApi学习笔记(四)-- Middleware

    Asp.Net Core WebApi学习笔记(四)-- Middleware 本文记录了Asp.Net管道模型和Asp.Net Core的Middleware模型的对比,并在上一篇的基础上增加Mid ...

随机推荐

  1. Maven - 镜像<mirror>

    使用镜像如果你的地理位置附近有一个速度更快的central镜像,或者你想覆盖central仓库配置,或者你想为所有POM使用唯一的一个远程仓库(这个远程仓库代理的所有必要的其它仓库),你可以使用set ...

  2. MySQL2.字符集乱码

    MySQL2.字符集 此节记录下MySQL出现乱码的原因.还是参考小册子~ 字符集简介 计算机中只能存储二进制数据,建立字符与二进制数据的映射关系来存储字符. 从两方面考虑: 1.界定清楚字符范围,即 ...

  3. 使用extjs的页面弹出窗口宽度不能自适应如何解决?

    1.资源趋势详情下钻页面宽度不能自适应,无法点击关闭按钮 var detailWindow = Ext.create("App.view.com.huawei.drp.qoe.vivid.C ...

  4. 手把手教你写vue插件并发布(二)

    前记:上一篇 https://www.cnblogs.com/adouwt/p/9211003.html, 说到了一个完整的vue插件开发.发布的流程,总结下来就讲了这么一个事,如何注入vue, 如果 ...

  5. 动态的加载显示oracle警告日志文件内容

    Last login: Fri Jan 25 00:37:47 2019 from oracle [root@oracle ~]# su - oracle [oracle@oracle ~]$ sql ...

  6. 搭建jenkins实现自动化部署

    搭建jenkins实现自动化部署 一.安装jenkins 1.添加yum repos,然后安装 sudo wget -O /etc/yum.repos.d/jenkins.repo https://p ...

  7. UGUI中粒子特效与UI的遮挡问题

    问题背景: 在做主线任务时发现完成任务后的特效显示穿透上面的UI层,不美观,策划不乐意了,抓紧解决下 解决思路: 首先讲下影响渲染顺序的因素: 能够影响渲染顺序的因素有:1.Camera Depth  ...

  8. jQuery之cookie操作

    Cookies 定义:让网站服务器把少量数据储存到客户端的硬盘或内存,从客户端的硬盘读取数据的一种技术: 下载与引入:jquery.cookie.js基于jquery:先引入jquery,再引入:jq ...

  9. Django—跨域请求(jsonp)

    同源策略 如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源. 示例:两个Django demo demo1 url.py url(r'^demo1/',demo1), vie ...

  10. 公设基础equals

    1#  覆盖equals方法的通用约定 1.自反性(reflexive) 自己跟自己的比较必须返回true 2.对称性(symmetric) x=y那么y=z 3.传递性(transitive) x= ...