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>
var header = document.querySelector('header');
var section = document.querySelector('section');
var requestURL = 'https://raw.githubusercontent.com/Bulalalala-Ly/package/master/yinshi-json/1.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'text';
request.send();
request.onload = function() {
var ownText = request.response;
var own = JSON.parse(ownText);
populateHeader(own);
showHeroes(own);
}
function populateHeader(jsonObj) {
var myH1 = document.createElement('h1');
myH1.textContent = jsonObj['Name'];
header.appendChild(myH1);
var myPara = document.createElement('p');
myPara.textContent = '导演 : ' + jsonObj['Director'] + ' / 首播时间: ' + jsonObj['formed'];
header.appendChild(myPara);
}
function showHeroes(jsonObj) {
var heroes = jsonObj['members']; for (var i = 0; i < heroes.length; i++) {
var myArticle = document.createElement('article');
var myH2 = document.createElement('h2');
var myPara1 = document.createElement('p');
var myPara2 = document.createElement('p');
var myPara3 = document.createElement('p');
var myList = document.createElement('ul'); myH2.textContent = heroes[i].name;
myPara1.textContent = '简介 : ' + heroes[i].introduction;
myPara2.textContent = '出生日期: ' + heroes[i].birth;
myPara3.textContent = '代表作品 :'; var superPowers = heroes[i].masterworks;
for (var j = 0; j < superPowers.length; j++) {
var listItem = document.createElement('li');
listItem.textContent = superPowers[j];
myList.appendChild(listItem);
} myArticle.appendChild(myH2);
myArticle.appendChild(myPara1);
myArticle.appendChild(myPara2);
myArticle.appendChild(myPara3);
myArticle.appendChild(myList); section.appendChild(myArticle);
}
}
</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" : [

"“代表作品名”",

"“代表作品名”",

"“代表作品名”"

  ]

}

]

}

11 week blog的更多相关文章

  1. 使用 Django1.11搭建blog项目

    使用Django搭建blog项目 简单设置: http://blog.csdn.net/w_e_i_/article/details/70761604 模板渲染: http://blog.csdn.n ...

  2. eclipse+cmake+c++11+ros

    eclipse+cmake: https://www.vtk.org/Wiki/CMake:Eclipse_UNIX_Tutorial eclipse+c++11: https://wiki.ecli ...

  3. 21. Blog接口开发

    一般的系统由登录.增删改查所组成.我们的Blog同样如此.我们会开发登录.创建博客.删除博客.修改博客.查询博客等功能.话不多说,我们直接展开实践吧. 思路分析 创建项目.既然我们要创建一个blog, ...

  4. session 存入数据库 php

     session 机制 1.php中session的生成机制 session是保存在服务器的,当我们在代码中调用session_start();时,PHP会同时往SESSION的存放目录(默认为/tm ...

  5. 杂项之使用qq邮箱发送邮件

    杂项之使用qq邮箱发送邮件 本节内容 特殊设置 测试代码 1. 特殊设置 之前QQ邮箱直接可以通过smtp协议发送邮件,不需要进行一些特殊的设置,但是最近使用QQ邮箱测试的时候发现以前使用的办法无法奏 ...

  6. 使用jekyll在GitHub Pages上搭建个人博客【转】

    网上有不少资源,但大多是“授人以鱼”,文中一步一步的告诉你怎么做,却没有解释为什么,以及他是如何知道的.他们默认着你知道种种专业名词的含义,默认着你掌握着特定技能.你折腾半天,查资料,看教程,一步步下 ...

  7. Android Studio 入门指南

    转载: 原文链接:http://www.codeceo.com/article/android-studio-guide.html 写在前面 作为一个Android 开发者,你应该很了解Android ...

  8. Django1.9开发博客(7)- 实现功能

    到目前为止我们已经完成了一个django应用的所有基础部分. 包括url配置.视图.模型和模板.接下来开始继续完善我们的博客系统了. 首先我们需要一个显示每篇文章的详细页面,对不? 文章详情 对于首页 ...

  9. System Hold, Fix Manager before resetting counters

    程序pending http://www.askmaclean.com/archives/2011/11 http://blog.itpub.net/35489/viewspace-717132/ 1 ...

随机推荐

  1. [转] babel-plugin-react-css-modules配置

    自己的react项目用到了css-modules,由于不太想在写className时写style.xxx于是google解决方案,找到了这货->babel-plugin-react-css-mo ...

  2. Zookeeper(一)CentOS7.5搭建Zookeeper3.4.12集群与命令行操作

    一. 分布式安装部署 1.0 下载地址 官网首页: https://zookeeper.apache.org/ 下载地址: http://mirror.bit.edu.cn/apache/zookee ...

  3. noip斗地主

    题解: 5分钟看题 25分钟码完 然后调了一下 样例1s??? 好吧我把只出一张牌当成决策了.. 判断了一下前面没有出牌再考虑这个决策(是不是傻逼??) 交上去65 于是愉快的改状压 改到一半的时候想 ...

  4. redis centos 6.5 redis版本3.2.8安装过程

    redis作为非关系数据库的典型应用,在庞大的数据通信处理有着自己强大的优势,今天也自己来开始学些redis. 以下每一个语句都是我执行的命令. 按照所查资料分析,需要tcl测试工具,这个在cento ...

  5. 【BZOJ】3022: [Balkan2012]The Best Teams

    原题链接 题面 (为啥这题没有题面-- 给出\(N\)个人,和年龄\(age_{i},skill_{i}\) 然后给出\(M\)个询问,就是年龄在\(a\)以下选不超过\(k\)个人 要求选择的人水平 ...

  6. Elasticsearch集群架构的部署和调优(一)

    [root@es-node1 ~]# mkdir /usr/java[root@es-node1 ~]# tar zxvf jdk1.8.0_131.tar.gz -C /usr/java/ [roo ...

  7. jquery.zclip.js粘贴功能

    jquery的粘贴插件: 如下是代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> ...

  8. Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第四集之安装Linux】

    1,确保Linux镜像的路径存在 2,启动 3,在真实机情况下,进入BIOS修改安装操作系统的路径[记住:虚拟机不需要这一步.] 如果是真实机安装Linux,默认是从硬盘中安装,而不是从光盘.这就需要 ...

  9. Clairewd’s message ekmp

    给两个串第一个串是翻译表(密文可以通过翻译表翻译成明文),第二个串是由密文+明文组成,前面是密文(完整的),后面是明文(未必完整),问能不能把第二个串补全,输出最短的一种可能. 一开始 用的strin ...

  10. 【python】常用第三方模块

    No1: [Pillow]图像处理标准库 缩放 from PIL import Image # 打开一个jpg图像文件,注意是当前路径: im = Image.open('test.jpg') # 获 ...