zoukankan      html  css  js  c++  java
  • JSON 语法

    一、JSON: JavaScript Object Notation (JavaScript 对象表示法)。

          JSON是存储和交换文本信息的语法。

          JSON独立于语言*

    1 {
    2     “sites”:[
    3         {'name':'菜鸟教程'  , 'url':'www.runoob.com'},
    4     ]
    5 }

      JSON转换为 JavaScript 对象

        JSON 文本格式在语法上与创建 JavaScript 对象的代码相同。

        由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象。

      使用JSON

        读取JSON字符串;

               用eval()处理JSON字符串。

    二、JSON语法

         JSON语法是JavaScript语法的子集。

        语法规则:

                    数据在键值对中

                    数据由逗号隔开

                   大括号保存对象

                    中括号保存数组

         JSON值:

                    数字、字符串、布尔值、数组、对象、null

    三、JSON对象

    { "name":"runoob", "alexa":10000, "site":null }

        访问对象值:

    var myObj, x;
    myObj = { "name":"runoob", "alexa":10000, "site":null };
    x = myObj.name;

    x = myObj["name"];

      循环对象:

    1 var myObj = { "name":"runoob", "alexa":10000, "site":null };
    2 for (x in myObj) {
    3     document.getElementById("demo").innerHTML += x + "<br>";
    4 }

         嵌套JSON对象:[JSON对象中可以嵌套JSON对象]

     1 myObj = {
     2     "name":"runoob",
     3     "alexa":10000,
     4     "sites": {
     5         "site1":"www.runoob.com",
     6         "site2":"m.runoob.com",
     7         "site3":"c.runoob.com"
     8     }
     9 }
    10 
    11 //访问
    12 x = myObj.sites.site1;
    13 // 或者
    14 x = myObj.sites["site1"];

         修改JSON对象:

    1 myObj.sites.site1 = "www.google.com";
    2 3 myObj.sites["site1"] = "www.google.com";

        删除JSON对象:

     1 delete myObj.sites.site1; 2 3 delete myObj.sites["site1"] 

    四、数组类同

    五、JSON.parse()

          JSON与服务器交换数据,接受的一般是字符串。可以使用JSON.parse()将数据转换为JavaScript对象。

      

    JSON.parse(text);
    

      

    <p id="demo"></p>
     
    <script>
    var obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
    document.getElementById("demo").innerHTML = obj.name + ":" + obj.site;
    </script>
    

      从服务器端接受JSON:

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            myObj = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myObj.name;
        }
    };
    xmlhttp.open("GET", "/try/ajax/json_demo.txt", true);
    xmlhttp.send();
    

      从服务器端接受数组JSON:

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
        if (this.readyState == 4 && this.status == 200) {
            myArr = JSON.parse(this.responseText);
            document.getElementById("demo").innerHTML = myArr[1];
        }
    };
    xmlhttp.open("GET", "/try/ajax/json_demo_array.txt", true);
    xmlhttp.send();
    

      

    JSON 不能存储 Date 对象。

    如果你需要存储 Date 对象,需要将其转换为字符串。

    之后再将字符串转换为 Date 对象。

    var text = '{ "name":"Runoob", "initDate":"2013-12-14", "site":"www.runoob.com"}';
    var obj = JSON.parse(text);
    obj.initDate = new Date(obj.initDate);
     
    document.getElementById("demo").innerHTML = obj.name + "创建日期: " + obj.initDate;
    

      JSON 不允许包含函数,但你可以将函数作为字符串存储,之后再将字符串转换为函数。

    var text = '{ "name":"Runoob", "alexa":"function () {return 10000;}", "site":"www.runoob.com"}';
    var obj = JSON.parse(text);
    obj.alexa = eval("(" + obj.alexa + ")");
     
    document.getElementById("demo").innerHTML = obj.name + " Alexa 排名:" + obj.alexa();
    

    六、JSON.stringify  [将JavaScript对象转化为JSON字符串]

    JSON.stringify(value[, replacer[, space]])
    

      由于 JSON 语法是 JavaScript 语法的子集,JavaScript 函数 eval() 可用于将 JSON 文本转换为 JavaScript 对象。

    var obj = eval ("(" + txt + ")");
    

      

  • 相关阅读:
    (备忘)解决用Xftp向CentOS7 传文件速度慢的问题
    CentOS上使用ntfs-3g挂载NTFS分区
    tomcat运行一段时间出“org.apache.coyote.http11.Http11Processor.service Error parsing HTTP request header”
    JQuery EasyUI treegrid展开与折叠,以及数据加载两次的问题
    goland 激活码
    golang 之xorm
    golang 之 go module
    golang 之单元测试
    golang 之反射
    golang 之sync &并发安全锁
  • 原文地址:https://www.cnblogs.com/cuihuale/p/6515912.html
Copyright © 2011-2022 走看看