zoukankan      html  css  js  c++  java
  • json 学习笔记

    定义:json 是JavaScript对象表示法。

    格式:

    var jsonObject ={

     "url":"www.baidu.com",

        "name":"zkr",

     "address":"shanghai"

    }

    多次嵌套json:

    var jsonObject={
      "ch":
        [
         {"names":"怡美家园","data":[2,2,1,1,1,1], "times":[10,11,13,13,21,23]},
         {"names":"怡美家园","data":[2,2,1,1,1,1],"times":[10,11,13,13,21,23]}  
         ]
      } ;

    基本语法:

    以值对的形式存在,(名称:值对)key value;

    如果值对有多个对象用数组[],每个对象用{}表示,键值对以:分开;

    简单的使用例子;

    <script type="text/javascript">
     var jsonO={
        "name":"zkr",
        "age":12,
        "hight":165

       "adress":{
         "china":"guo",
         "jiangsu":"sheng",
         "nanjing":["shi","shenghui"]
        }
     }
     window.onload=function(){
      document.getElementById("name").innerHTML=jsonO.name;
      document.getElementById("age").innerHTML=jsonO.age;
      document.getElementById("hight").innerHTML=jsonO.hight;

    alert(jsonO.adress.china);
      alert(jsonO.adress["nanjing"]);
     }
        
    </script>

    <div>
      name:<span id="name"></span>
      age:<span id="age"></span>
      hight:<span id="hight"></span>
     </div>

     访问json的方式:

    通过.的形式,如:jsonO.name;

    通过["name"],[数组下标]的形式,如:jsonO["name"] ,jsonO["age"],jsonO["hight"];

    对于嵌套的json对象:

    可以使用

    jsonO.adress.china;
    jsonO.adress["nanjing"];

    修改json的值

    jsonO.adress.china="zhongguo";
      jsonO.adress["nanjing"]="shenghui";

    删除对象的属性:

    delete关键字:

    delete jsonO.adress.china;

    delete jsonO.adress["nanjing"];

     json 中的对象的值是数组:利用索引值来获取;

    jsonO.adress.nanjing[1];

    修改直接赋值,删除 delete关键字

    json 的解析:


    function test (){
    //创建xhr对象
    var xhr;
    if(window.XMLHttpRequest){
    xhr=new XMLHttpRequest();
    }else {
    xhr=new ActivXObject("Mirocsoft.XMLHTTP");
    }
    xhr.onreadystatechange=function(){
    if(xhr.readyState==4&&xhr.status==200){
    jsonO=JSON.parse(this.responseText);//json解析
    alert(jsonO);
    document.getElementById("te").innerHTML=jsonO.sites[0].name;
    }

    }

    xhr.open("GET","/test/text/1.txt","ture");
    xhr.send();
    }

    异常:

    解析数据

    json中存的是字符串,

    无论是date还是function都是以字符串形式存储的,

    解析后再次转换为响应的类型。

    json不能存储date对象,

    如果存储的话要转成字符串

    解析后转换成字符串,在转换成date数据。

    今天工作第一次听到跨域访问:

    使用jsonp:

    get可以

    定义跨域:

    同源策略:

     简言之,域名,协议,端口保持一致

    域名:

    协议:http https

    端口:8080

    同时访问:http://store.company.com/dir/page.html同源检测结果:

    http://store.company.com/dir2/other.html 成功  
    http://store.company.com/dir/inner/another.html 成功  
    https://store.company.com/secure.html 失败 协议不同
    http://store.company.com:81/dir/etc.html 失败 端口不同默认端口80
    http://news.company.com/dir/other.html 失败 主机名不同
  • 相关阅读:
    多状态场景:后端只记录行为,不记录行为的含义,比如产品定义的状态值含义;行为是客观的,不变的。
    Golang协程池的使用 原创 360质量效能 360质量效能 2021-05-28
    &strct new
    【Golang】图解函数调用栈
    Mybatis-Plus的应用场景及注入SQL原理分析
    倒计时时间到触发事件
    浅析软件供应链攻击之包抢注低成本钓鱼
    腾讯代码安全指南开源,涉及C/C++、Go等六门编程语言 https://mp.weixin.qq.com/s/yzg5uVnoJDTyaH2Wn8Vo7w
    58黄页标签提取及海量多分类优化
    引用站点策略: strict-origin-when-cross-origin 引用站点策略: no-referrer-when-downgrade
  • 原文地址:https://www.cnblogs.com/cflr/p/6526464.html
Copyright © 2011-2022 走看看