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语法规则

  1. JSON数据格式键和值的字符串 必须使用双引号
  2. 可以装通用的数据类型,数字、字符串、布尔、数组、对象、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片段

vs code 用户代码片段 html.json

错误代码:错误域 = NSCocoaErrorDomain 代码 = 3840“JSON 文本没有以数组或对象和允许未设置片段的选项开头。”

配置 VScode 编辑器 (前端篇)

如何在android中将json数据加载到片段中

使用 json rereiver php mysql 在片段中填充列表视图