当前位置: 代码迷 >> JavaScript >> JSON学习札记
  详细解决方案

JSON学习札记

热度:178   发布时间:2012-11-19 10:18:51.0
JSON学习笔记

JSON:JavaScript 对象标记法(JavaScript Object Notation)。

  • JSON 文件的文件类型是 ".json"
  • JSON 文本的 MIME 类型是 "application/json"
  • JSON 语法规则

    JSON 语法是 JavaScript 对象表示法语法的子集。

    • 数据在名称/值对中
    • 数据由逗号分隔
    • 花括号保存对象
    • 方括号保存数组

    如:对象 "employees" 是包含三个对象的数组。每个对象代表一条关于某人(有姓和名)的记录。

    {   "employees": [
                               { "firstName":"Bill" , "lastName":"Gates" },
                               { "firstName":"George" , "lastName":"Bush" },
                               { "firstName":"Thomas" , "lastName":"Carter" }
     ]
    }

    ?可以像使用JS数组一样的,如拿它的某个属性:employees[0].lastName;? 返回的内容是:Gates

    ???????????????????????????????????????????可以像这样修改数据:employees[0].lastName="xxx";

    类似XML,相比 XML 的不同之处

    • 没有结束标签
    • 更短
    • 读写的速度更快
    • 能够使用内建的 JavaScript eval() 方法进行解析
    • 使用数组
    • 不使用保留字

    **************************************************

    ?

    • 在 JavaScript 中创建 JSON 对象
    <html>
    <body>
    
                Name: <span id="jname"></span><br />
                 Age: <span id="jage"></span><br />
                  Address: <span id="jstreet"></span><br />
                Phone: <span id="jphone"></span><br />
    
    <script type="text/javascript">
    var JSONObject= {
    "name":"Bill Gates",
    "street":"Fifth Avenue New York 666",
    "age":56,
    "phone":"555 1234567"};
    document.getElementById("jname").innerHTML=JSONObject.name
    document.getElementById("jage").innerHTML=JSONObject.age
    document.getElementById("jstreet").innerHTML=JSONObject.street
    document.getElementById("jphone").innerHTML=JSONObject.phone
    </script>
    
    </body>
    </html>
    

    ?

    备注:?JSONObject不可改名字,是JSON中用来将字符串等转化为JSON对象的实例,如果将蓝色代码和红色代码调换

    ???????? 位置,不出效果。

    ?

    • <h2>通过 JSON 字符串来创建对象</h3>
      <html>
      <body>
      <p>
      First Name: <span id="fname"></span><br /> 
      Last Name: <span id="lname"></span><br /> 
      </p> 
      <script type="text/javascript">
      var txt = '{"employees":[' +
      '{"firstName":"Bill","lastName":"Gates" },' +
      '{"firstName":"George","lastName":"Bush" },' +
      '{"firstName":"Thomas","lastName":"Carter" }]}';
      
      var obj = eval ("(" + txt + ")");
      
      document.getElementById("fname").innerHTML=obj.employees[1].firstName 
      document.getElementById("lname").innerHTML=obj.employees[1].lastName 
      </script>
      </body>
      </html>
      
      ?
      备注:

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

      eval() 函数使用的是 JavaScript 编译器,可解析 JSON 文本,然后生成 JavaScript 对象。必须把文本包围在括号中,这样才能避免语法错误。

      • ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

    ?

      相关解决方案