zoukankan      html  css  js  c++  java
  • AJAX——Json

    一、简介:

      客户端利用Ajax请求服务器端时,数据在两者之间通常有两种格式:XML格式的数据;Json(JavaScript Object Notation/JavaScript 对象表示法)格式数据。

      XML:跨平台,跨语言,是在Web Services中的通用格式。其结构包括:元素、属性、文本等;但用 javascript 操作较复杂。(1)读取 XML 文档(2)使用 XML DOM 来循环遍历文档(3)读取值并存储在变量中。

      Json是存储和交换文本信息的语法文本。类似 XML。JSON 比 XML 更小、更快,更易解析。作为一种轻量级的数据交换格式,主要是为js服务。JSON 文本格式在语法上与创建 Js对象的代码相同。由于这种相似性,无需解析器,JavaScript 程序能够使用内建的 eval() 函数,用 JSON 数据来生成原生的 JavaScript 对象,因此JS可以利用从该对象中获取属性的方式提取数据,而不需要处理DOM。(1)读取 JSON 字符串(2)用 eval() 处理 JSON 字符串(3)从Json对象中获取属性的方式提取数据

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

      XML和JSON的相同点 是 具有“自我描述性”的纯文本,具有层级结构,可通过 JavaScript 进行解析,可使用 AJAX 进行传输; 

    二、Json语法 
          Json的语法就是javascript对象的语法,如下:

    {FXTJ: [

          {name:'高风险',data:[{ name: '高风险', color: '#FF00FF',y:0},{ name: '高风险', color: '#FF00FF',y:2},{ name: '高风险', color: '#FF00FF',y:0}]},
          {name:'中风险',data:[{ name: '中风险', color: '#e4d354',y:4},{ name: '中风险', color: '#e4d354',y:2},{ name: '中风险', color: '#e4d354',y:4}]},
          {name:'低风险',data:[{ name: '低风险', color: '#00FF00',y:2},{ name: '低风险', color: '#00FF00',y:2},{ name: '低风险', color: '#00FF00',y:2}]}
        ]
    }

      json内容要放在{}中,用以表示对象。数据以名/值对的形式保存类似于JS中对象的属性、属性值,各个数据之间以“,”隔开。当值有多个时,用[]表示。如上面,FXTJ是一个对象,其有三个子对象,所以子对象用[]包裹起来。

      名值对定义如下:名可以加“”,也可以不加,而值则有以下类型:数字(整数或浮点数)、字符串(在双引号中)、逻辑值(true 或 false)、数组(在方括号中)、对象(在花括号中)、null。如name:'高风险'。name为名,'高风险'为值,中间用:隔开。

    三、Json用法 

    1、 eval ()

      eval()方法可以把JavaScript字符串当作参数,还可以将该字符串转换成对象,或作为命令动作。如果使用XMLHttpRequest对象的responseText属性请求JSON数据,那么使用eval()将JSON文本字符串转换成JavaScript对象。因为JSON字符串常包包含花括号,所以用圆括号来括住JSON字符串,以表明字它是一个求值表达式,而不是一个要运行的命令。
          var jsonResp=request.responseText;
          jsonResp=eval(“(”+jsonResp+”)”);

      例:var strjson=eval("({FXTJ: [{name:'高风险',data:[{ name: '高风险', color: '#FF00FF',y:0},{ name: '高风险', color: '#FF00FF',y:2},{ name: '高风险', color: '#FF00FF',y:0}]},

        {name:'中风险',data:[{ name: '中风险', color: '#e4d354',y:4},{ name: '中风险', color: '#e4d354',y:2},{ name: '中风险', color: '#e4d354',y:4}]},
        {name:'低风险',data:[{ name: '低风险', color: '#00FF00',y:2},{ name: '低风险', color: '#00FF00',y:2},{ name: '低风险', color: '#00FF00',y:2}]}
        ]
    })")

      则该字符串变为一个对象,strjson指向该对象。获取值得方式:strjson.FXTJ[0].name;  //为'高风险'  ;修改值:strjson.FXTJ[0].name=“无风险”

          2、JSON.parse()

    IE8+及其他浏览器均支持,使用方法如下:

    var jsonData = '{"data1":"Hello,", "data2":"world!}';
    var jsonParseJson=JSON.parse(jsonData);

    3、使用JSON解析器

      如果Web服务器既提供JSON数据也提供请求页面,则适合选用eval()方法。如果涉及安全,则适合使用JSON解析器。JSON解析器只作用于JSON文本,JSON 解析器只能识别 JSON 文本,而不会编译脚本。而且 JSON 解析器的速度更快。在这种情况下,可以使用responseText,但要使用parseJSON()方法将JSON文本字符串转换成JavaScript对象。要访问parseJOSN函数,需要要添加引用json.js文件到页面中。
          var jsonResp=request.responseText;
          jsonResp=jsonResp.parseJSON();

      可以使用JSON解析器从对象和数组中创建JSON文本或者JSON文本中创建对象和数组。JSON站占www.json.rog/json.js上提供有JSON解析器,通过将下列代码加入到页面的头部上即可使用。JSON解析器提供了两个函数:toJSONString()和parseJSON()。

    • toJSONString()方法被添加到JavaScript Object和Array定义中,该方法能将JavaScript对象或数组转换成JSON文本。不必将对象或数组转换成字面量就能使用该方法。
    • parseJSON()方法能从JSON文本中创建对象或数组。

     

  • 相关阅读:
    HDU 1335 Basically Speaking(进制转换)
    2016年团体程序设计天梯赛-决赛 L2-3. 互评成绩(25)
    2016年团体程序设计天梯赛-决赛 L1-8. Left-pad(20)
    2016年团体程序设计天梯赛-决赛 L1-7. 到底是不是太胖了(10)
    2016年团体程序设计天梯赛-决赛 L1-6. 一帮一(15)
    2016年团体程序设计天梯赛-决赛 L1-5. 是不是太胖了(5)
    2016年团体程序设计天梯赛-决赛 L1-3. 出租(20)
    2016年团体程序设计天梯赛-决赛 L1-2. I Love GPLT(5)
    2016年团体程序设计天梯赛-决赛 L1-1. 正整数A+B(15)
    Codeforces Round #321 (Div. 2) C. Kefa and Park dfs
  • 原文地址:https://www.cnblogs.com/SunBlog/p/3989190.html
Copyright © 2011-2022 走看看