zoukankan      html  css  js  c++  java
  • JSON详解

    JSON详解

    1.什么是json?

       JSON全称是JavaScript Object Notation,是一种轻量级的数据交换格式。JSON 与XML具有相同的特性,是一种数据存储格式,但是JSON相比XML 更易于人编写和阅读,更易于生成和解析。

    2.JSON的语法规则:

     1)数据以名称/值对的形式保存,名称/值对包括字段名称(在双引号中),后面写一个冒号,然后是值,如 :"firstName" : "John"。JSON的值可以是数字、字符串、null、true、false、数组或对象。

     2)数据有都好分隔

       3)花括号保存对象,对象可以包含多个名/值对。

       4)方括号保存数组,数组可以包含多个对象。

     5)JSON文件:

    • JSON 文件的文件类型是 ".json"
    • JSON 文本的 MIME 类型是 "application/json"

    3.JSON 的两种结构:

    1)键值对形式,即Name-Value对的结构结构集合(无序的 )。如:{name1:value1.name2:value2,...};

     {"name":"小明","age":"12"}

    2)Array(有序的):一组有序的数据列表。例如:[value1,value2,value3,.....],其中,值可以是双引号引起来的字符串(string)、数值(number)、true、false、null、对象(object)或者数组(Array),这些结构都是可以嵌套的。如:

      例一:对象中可以包含数组

       {"root":[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"}],"total":3,"success":true}

         例二:也可以对象嵌套子对象,子对象再嵌套数组:

          {"memberList":{"lists":[{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"}]}}

         例三:数组中可以包含对象:

           [{"id":"001","name":"小红"},{"id":"002","name":"小明"},{"id":"003","name":"小丽"},........]

    4.JSON 的取值方式和修改方式:

      如:

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

     取值:employees[0].lastName

       修改数据:employees[0].lastName="Jobs"

     5.JSON与字符串之间的转化方法:

      JSON转换为字符串(string)格式:var string=JSON.stringify(obj);

      将Json字符串转换为JSON:

       (1)var data=JSON.parse(string);

        function strToJson(){

          return JSON.parse(str);

        }

        使用JSON.parse需严格遵守JSON规范,如属性都需要用引号引起来,否则会出错,如下:

          var str = '{name:"jack"}'; 
          var obj = JSON.parse(str); // --> parse error 

        name没有用引号引起来,使用JSON.parse所有浏览器中均抛异常,解析失败。(下面这两种方式则没有问题)

       (2)eval(string);               

        例如:function myEval(){

              var str='{"id":"001","name":"小明","age":10}';

              var obj=eval('('+str+')');

              alert(obj.toJSONString());

          }

        (3) new Function形式

          function strToJson(str){

            var json=(new Function("return"+str))();

          }

        (4)jQuery中也有将字符串转为JSON格式的方法jQuery.parseJSON( json ),接受一个标准格式的 JSON 字符串,并返回解析后的 JavaScript (JSON)对象

  • 相关阅读:
    复习列表
    20201009 day30 复习2:滑动窗口
    20201009 day30 复习1:扫描线
    20201007day29 模拟(九)
    20201006day28 模拟(八)
    20201005day27 模拟(七)
    20201004 day26 模拟(六)
    20201003day25 模拟(五)
    路由重分布(一)
    RIP路由协议(一)
  • 原文地址:https://www.cnblogs.com/yjd_hycf_space/p/7930653.html
Copyright © 2011-2022 走看看