一、简介:

  客户端利用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文本中创建对象或数组。

AJAX——Json的更多相关文章

  1. struts2 + ajax + json的结合使用,实例讲解

    struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...

  2. AJAX,JSON搜索智能提示

    效果 开发结构参考AJAX,JSON用户校验 主要有两个核心文件 1,处理输入字符,进行后台搜索的servlet Suggest.java package org.guangsoft.servlet; ...

  3. php ajax json jquery 记录

    php+jquery+ajax+json简单小例子 <html> <title>php+jquery+ajax+json简单小例子</title> <?php ...

  4. 练习 jquery+Ajax+Json 绑定数据 分类: asp.net 练习 jquery+Ajax+Json 绑定数据 分类: asp.net

    练习 jquery+Ajax+Json 绑定数据

  5. Jquery+ajax+json+servlet原理和Demo

    Jquery+ajax+json+servlet原理和Demo 大致过程: 用户时间点击,触发js,设置$.ajax,开始请求.服务器响应,获取ajax传递的值,然后处理.以JSON格式返回给ajax ...

  6. 玩转Web之Json(一)-----easy ui+ajax + json 中关于Json的解析问题

    在easy ui中使用Ajax+Json实现前后的数据交互时,当后台数据传输到客户端是需对Json数据进行解析,这里将对Json数据解析做简单总结. (一) 对于服务器返回的数据若没有做类型说明,需要 ...

  7. php+jquery+ajax+json简单小例子

    直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...

  8. JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表

    本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上.   对 ...

  9. Struts+Spring+Hibernate项目整合AJAX+JSON

    1.什么是AJAX AJAX是 "Asynchronous JavaScript and XML" 的简称,即异步的JavaScript和XML. 所谓异步,就是提交一个请求不必等 ...

  10. 基于Jquery+Ajax+Json+存储过程 高效分页

    在做后台开发中,都会有大量的列表展示,下面给大家给大家分享一套基于Jquery+Ajax+Json+存储过程高效分页列表,只需要传递几个参数即可.当然代码也有改进的地方,如果大家有更好的方法,愿留下宝 ...

随机推荐

  1. VC 模拟CMD 匿名管道

    #include "stdafx.h" #include <Windows.h> #include <stdio.h> #include <stdli ...

  2. ios点击事件失效

    当使用委托给一个元素添加click事件时,如果事件是委托到 document 或 body 上,并且委托的元素是默认不可点击的(如 div, span 等),此时 click 事件会失效. 解决办法有 ...

  3. JavaWeb -- 邮件收发

    smtp协议: telnet smtp.qq.com 25 ehlo kevin auth login eGlhbmdqaWU1NUBxcS5jb20= a2V2aW5feGlhbmc1NQ== ma ...

  4. review22

    程序再运行期间,可能需要从外部的存储媒介或其他程序中读入所需要的数据,这就需要使用输入流. 程序可能经常需要获取磁盘上文件的有关信息或在磁盘上创建新的文件等,这就需要学习使用File类. 创建一个Fi ...

  5. 【疯了Labview】(一)仿JKI的RCF 挂件

    最近在疯狂的学习C#中,学习的最好的一个途径便是论坛,发帖,看帖和被骂,新手往往在这个过程中慢慢长大一直想做个类似JKI RCF挂件的东西,目前实现了,想想其实思路也不是很难, RCF是JKI做的通过 ...

  6. 5.3 Razor语法基础

    以往开发ASP.NET Web Form时,在ASPX页面上都会出现许多夹杂C#/VB.NET与HTML的情况,而先前使用<%...%>这种传统圆角括号的表示法会让HTML标签与ASP.N ...

  7. jquery清空form表单

    //在form表单中添加一个隐藏的reset按钮, <button type="reset" style="display:none;"></ ...

  8. Python学习之路day4-函数高级特性、装饰器

    一.预备知识 学习装饰器需理解以下预备知识: 函数即变量 函数本质上也是一种变量,函数名即变量名,函数体就变量对应的值:函数体可以作为值赋给其他变量(函数),也可以通过函数名来直接调用函数.调用符号即 ...

  9. mysql分组取topn

    本文来自  http://www.jb51.net/article/31590.htm 有些语句sql top n 是sqlserver语法 --按某一字段分组取最大(小)值所在行的数据 代码如下: ...

  10. 在Mac上激活Adobe产品

    1.在任意位置下载需要的Adobe软件(推荐官网正版) 网速不好或者不通推荐下载离线安装包: https://helpx.adobe.com/download-install/kb/creative- ...