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. babelrc

    .babelrc文件 // 简单版 { "presets": ["es2015", "stage-2"], // 使用 es2015 npm ...

  2. openpose pytorch代码分析

    github: https://github.com/tensorboy/pytorch_Realtime_Multi-Person_Pose_Estimation # -*- coding: utf ...

  3. php让一个数组按照另外一个数组的键名进行排序

    $a = [ 'id', 'name', 'identityId', 'phone', 'email', 'schoolId' ]; $b = [ 'id' => '唯一标识', 'identi ...

  4. Genius ACM

    题解: 发现匹配一定会选最大和最小匹配,确定左右端点之后nlogn排序后算 比较容易想到二分 最坏情况每次1个 $n^2*(logn)^2$ 没错暴力的最差复杂度是$n^2*logn$的 发现长度与次 ...

  5. windows server远程连接提示“终端服务器超出了最大允许连接”

  6. phpMyAdmin 安装教程全攻略

    管理MYSQL数据库的最好工具是PHPmyAdmin,现在最新版本是phpMyAdmin 2.9.0.2,这是一个国际上开源的软件,一直在更新版本,你可以从 http://www.phpmyadmin ...

  7. 今天开始学习php,粘一些重点放这以便查看记忆。

    1.PHP的变量用$定义. PHP 将所有全局变量存储在一个名为 $GLOBALS[index] 的数组中. index 保存变量的名称.这个数组可以在函数内部访问,也可以直接用来更新全局变量. 2. ...

  8. python 操作mongo

    1. 导包: import pymongo 2. 建立连接 client = pymongo.MongoClient("127.0.0.1",27017) 3. 获取数据库 db ...

  9. ContentProvider插件化解决方案

    --摘自<android插件化开发指南> 1.当要传输的数据量大小不超过1M的时候,使用Binder:数据量超过1M时,Binder就搞不定了,需要ContentProvider 2.Co ...

  10. AOP编程-理论篇

    本节内容主要讲解AOP编程理念,包括概念讲解,使用AOP的优势,如何实现AOP,常见的实现AOP的方法. 1.AOP的概念 AOP是Aspect Oriented Programming的缩写,意思是 ...