json篇
Posted 冉庆之
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了json篇相关的知识,希望对你有一定的参考价值。
Date:2017-07-20 | By Author:Grit
JSON
一种轻量级的数据交互格式,是字符串类型(早期是使用XML:清晰易懂,占用空间大)
JSON是学习Ajax前后端数据交互的基础
JSON和JS对象
DateType | DES |
---|---|
JS对象 | js的一种数据类型,是js特有的,无法传递数据。 |
JSON | 一个交互的格式,可以传递数据,实际上传递的是"字符串"。 |
JSON语法规则
- JSON数据格式键和值的字符串 必须使用双引号
可以装通用的数据类型,数字、字符串、布尔、数组、对象、null
(除了undefined、function、NaN……之外)JSON在JS里的定义方式
//第一种
var obj = {
"name":"grit",
"age":18,
"gender":man,//早期IE7以前版本并不支持末尾逗号
};
//第二种
var obj = new Object();//先创建对象
obj.name = "grit";//再添加属性
obj.age = 18;
obj.gender = man;
JS对象转JSON字符串
JSON.stringify(js对象)
返回JSON字符串,用于发送到后台。
//例:
var obj = {name:"slice", age: 18};
obj = JSON.stringify(obj);
alert(typeof obj);
JSON字符串转JS对象
主要将后台返回的JSON数据转换成js对象,便于操作
<script src="json2.js"></script>//引用json2.js,兼容IE7以下版本
<script>
var obj = JSON.parse(‘{"name":"grit", "age":18, "marry": true}‘);
alert(obj.name);
</script>
定时器
延时定时器(setTimeout()):
参一:延时执行的函数function,如果传参数使用字符串,会讲字符串当做js代码来执行;
参二:延时多少毫秒ms(1000ms=1s)。
//例1
setTimeout(function(){
alert(333);
},2000);
//例2
setTimeout(‘fn("grit")‘,2000);
function fn(x){
alert(x)
};
循环定时器(setInterval()):
参一:循环执行的函数function,如果传参数使用字符串,会讲字符串当做js代码来执行;
参二:延时多少毫秒ms,循环执行。
var i = 0;
var num = setInterval(function(){//定义循环
i++;
if(i>=3){
clearInterval(num);//清除循环
}else{
alert(i);
}
},2000);
时间和日期
Method | DES |
---|---|
getTime() | 十三位时间戳 |
getFullYear() | 获取年份 |
getMonth() | 获取月份 从一份月开始为0 |
getDate() | 获取某一天 多少号 |
getDay() | 星期几 星期天返回0 |
getHours | 获取时 |
getMinutes | 获取分 |
getSeconds | 获取秒 |
//每隔一秒打印一次,弹出时间累加
setInterval(function(){
var date = new Date();
console.log(date.getHours() + "时" +date.getMinutes() + "分" + date.getSeconds()+"秒");
},1000);
DOM(节点操作)
区分:
DOM:Document Object Model
BOM:Browser Object Model
Attribute|DES
---|---
Node.children|所有子节点,类数组
Node.nextSibling|下一个兄弟节点IE8-
Node.nextElementSibling|下一个兄弟节点Chrome,IE9+
Node.previousSibling|上一个兄弟节点IE8-
Node.previousElementSibling|上一个兄弟节点Chrome,IE9+
Node.parentNode|找父元素
Node.nodeName|打印出大写的标签名字
ParentNode.removeChild(child)|通过父元素移除子元素
ParentNode.appendChild(child)|追加元素在内容末尾
document.createElement("a")|创建元素
parent.insertBefore( xxx, box)|把xxx元素插入到box之前
Node.className|获取元素名字
//添加元素示例
var btn = document.getElementById("btn");//button元素
var imgs = document.createElement("img");//创建img标签
var box2 =document.getElementById("box2");
imgs.src = "http://sc.jb51.net/uploads/allimg/131031/2-13103115593HY.jpg";//给图片元素img添加地址路径
btn.onclick = function(){
//box3.parentNode.appendChild(imgs);
box3.parentNode.insertBefore( imgs,box2);//将图片添加到box2前面
}
以上是关于json篇的主要内容,如果未能解决你的问题,请参考以下文章
json 可视代码工作室Angular with Firebase片段
错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”