Working With JSON
JavaScript对象表示法(JSON)是用于将结构化数据表示为JavaScript对象的标准格式,通常用于在网站上表示和传输数据(例如从服务器向客户端发送一些数据,因此可以将其显示在网页上)。 JSON是一种按照JavaScript对象语法的数据格式,你可以把 JavaScript 对象原原本本的写入 JSON 数据——字符串,数字,数组,布尔还有其它的字面值对象。虽然它是基于 JavaScript 语法,但它独立于JavaScript。
下面是一个在Javascript中使用远端JSON的示例:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>草丛三兄弟</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header> </header>
<section></section>
<script>
var header = document.querySelector('header');
var section = document.querySelector('section');
//通过 XMLHttpRequest API 获取Github上的JSON文件
var requestURL = 'https://raw.githubusercontent.com/git0null/-json/master/caocongsanxiongdi.json';
var request = new XMLHttpRequest();
request.open('GET', requestURL);
request.responseType = 'json';
request.send();
request.onload = function() {
var obj = request.response;
populateHeader(obj);
showHeroes(obj);
}
function populateHeader(jsonObj) {
var myH1 = document.createElement('h1');
myH1.textContent = jsonObj.squadName;
header.appendChild(myH1);
var myH2 = document.createElement('h2');
myH2.textContent = '成员:';
header.appendChild(myH2);
}
function showHeroes(jsonObj) {
var heroes = jsonObj.members;
for(i = 0; i < heroes.length; i++) {
var myArticle = document.createElement('article');
var myH3 = document.createElement('h3');
var p2 = document.createElement('p');
var p3 = document.createElement('p');
var myList = document.createElement('ul');
myH3.textContent = heroes[i].name;
p2.textContent = '外号:'+heroes[i].surname;
p3.textContent = '技能:';
var skill = heroes[i].skill;
for(j = 0; j < skill.length; j++) {
var listItem = document.createElement('li');
listItem.textContent = skill[j];
myList.appendChild(listItem);
}
myArticle.appendChild(myH3);
myArticle.appendChild(p2);
myArticle.appendChild(p3);
myArticle.appendChild(myList);
section.appendChild(myArticle);
}
}
</script>
</body>
</html>
本例中JSON文件内容如下:
{
"squadName" : "草丛三兄弟",
"members" : [
{
"name" : "盖伦",
"surname":"草丛仑、大宝剑",
"skill":[
"坚韧",
"致命打击",
"勇气",
"审判",
"德玛西亚正义"
]
},
{
"name" : "赵信",
"surname":"菊花信",
"skill":[
"果决",
"三重爪击",
"风斩电刺",
"无畏冲锋",
"新月护卫"
]
},
{
"name" : "嘉文四世",
"surname":"周杰伦",
"skill":[
"战争律动",
"巨龙撞击",
"黄金圣盾",
"德邦军旗",
"天崩地裂"
]
}
]
}
result:

Working With JSON的更多相关文章
- 使用TSQL查询和更新 JSON 数据
JSON是一个非常流行的,用于数据交换的文本数据(textual data)格式,主要用于Web和移动应用程序中.JSON 使用“键/值对”(Key:Value pair)存储数据,能够表示嵌套键值对 ...
- 【疯狂造轮子-iOS】JSON转Model系列之二
[疯狂造轮子-iOS]JSON转Model系列之二 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 上一篇<[疯狂造轮子-iOS]JSON转Model系列之一> ...
- 【疯狂造轮子-iOS】JSON转Model系列之一
[疯狂造轮子-iOS]JSON转Model系列之一 本文转载请注明出处 —— polobymulberry-博客园 1. 前言 之前一直看别人的源码,虽然对自己提升比较大,但毕竟不是自己写的,很容易遗 ...
- Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)
背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...
- .NET Core系列 : 2 、project.json 这葫芦里卖的什么药
.NET Core系列 : 1..NET Core 环境搭建和命令行CLI入门 介绍了.NET Core环境,本文介绍.NET Core中最重要的一个配置文件project.json的相关内容.我们可 ...
- 一个粗心的Bug,JSON格式不规范导致AJAX错误
一.事件回放 今天工作时碰到了一个奇怪的问题,这个问题很早很早以前也碰到过,不过没想到过这么久了竟然又栽在这里. 当时正在联调一个项目,由于后端没有提供数据接口,于是我直接本地建立了一个 json ...
- JSON.parse()和JSON.stringify()
1.parse 用于从一个字符串中解析出json 对象.例如 var str='{"name":"cpf","age":"23&q ...
- json与JavaScript对象互换
1,json字符串转化为JavaScript对象: 方法:JSON.parse(string) eg:var account = '{"name":"jaytan&quo ...
- .NET平台开源项目速览(18)C#平台JSON实体类生成器JSON C# Class Generator
去年,我在一篇文章用原始方法解析复杂字符串,json一定要用JsonMapper么?中介绍了简单的JSON解析的问题,那种方法在当时的环境是非常方便的,因为不需要生成实体类,结构很容易解析.但随着业务 ...
- WebApi接口 - 响应输出xml和json
格式化数据这东西,主要看需要的运用场景,今天和大家分享的是webapi格式化数据,这里面的例子主要是输出json和xml的格式数据,测试用例很接近实际常用情况:希望大家喜欢,也希望各位多多扫码支持和点 ...
随机推荐
- protocol buffer c#
第一.打开vs中的Nuget
- HDU1114(KB12-F DP)
Piggy-Bank Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total ...
- HTML5 简单归纳 -- 前端知识 (一)
HTML5简介 1.h5不是一个新语言,它是HTML语言第五次重大修改--版本 2. 2014年 h5 3.支持:目前所有的主流浏览器都支持h5,IE8以下不支持 4.特性: a:抛弃了h4中不 ...
- element-ui 中的table的列隐藏问题
element-ui 中的table和bootstrap中的table的某些设置还是有一定的差别的.之前用bootstrap做的表格,想要实现简短列和详细列的切换.因为详细列实在有太多列了,拉动滚动条 ...
- bower 和 npm 的区别详细介绍
摘要: 本文讲的是bower 和 npm 的区别详细介绍, 简单的说,npm是进行后端开发中,使用的模块安装工具,而bower,是前端的模块安装工具. 比如,在安装express,socket.io时 ...
- 如何通过活字格实现Excel 汇总
企业中,经常面临需要汇总大批量的Excel 数据表的需求.如果仅通过手工汇总,则会有非常大的工作量,而且还很容易出现错误.此时,如果可以借助活字格这样的工具,来帮助实现汇总Excel 的功能,则会使工 ...
- 微信小程序开发--模板(template)使用,数据加载,点击交互
微信小程序视图层提供了 模板(template),可以在模板中定义代码片段,然后在不同的地方调用.结果在数据渲染那懵逼了.按照官网上对模板的说明和对数据的加载. 1.定义模板 使用name属性,作为模 ...
- Mac配置SDK+JDK环境
1.打开默认终端设备,编辑.bash_profile文件,命令:vi .bash_profile 2.执行,打开文件,编辑,配置环境命令如下: ①JDK环境:export JAVA_HOME=/lib ...
- 多媒体指令(AVX加速数组求和)
#include <stdio.h> #include <intrin.h> #include <iostream> #include <ctime> ...
- 数据库还原错误:指定的转换无效。(SqlManagerUI)
SSMS在一定程度上方便我们进行一些常见的操作.但有时候它处理得又不是那么不人性化.尤其是错误信息. 今天我在进行数据库还原的时候就碰到一个错误:指定的转换无效.(SqlManagerUI) Spec ...