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文本中创建对象或数组。
AJAX——Json的更多相关文章
- struts2 + ajax + json的结合使用,实例讲解
struts2用response怎么将json值返回到页面javascript解析,这里介绍一个struts2与json整合后包的用法. 1.准备工作 ①ajax使用Jquery:jquery-1.4 ...
- AJAX,JSON搜索智能提示
效果 开发结构参考AJAX,JSON用户校验 主要有两个核心文件 1,处理输入字符,进行后台搜索的servlet Suggest.java package org.guangsoft.servlet; ...
- php ajax json jquery 记录
php+jquery+ajax+json简单小例子 <html> <title>php+jquery+ajax+json简单小例子</title> <?php ...
- 练习 jquery+Ajax+Json 绑定数据 分类: asp.net 练习 jquery+Ajax+Json 绑定数据 分类: asp.net
练习 jquery+Ajax+Json 绑定数据
- Jquery+ajax+json+servlet原理和Demo
Jquery+ajax+json+servlet原理和Demo 大致过程: 用户时间点击,触发js,设置$.ajax,开始请求.服务器响应,获取ajax传递的值,然后处理.以JSON格式返回给ajax ...
- 玩转Web之Json(一)-----easy ui+ajax + json 中关于Json的解析问题
在easy ui中使用Ajax+Json实现前后的数据交互时,当后台数据传输到客户端是需对Json数据进行解析,这里将对Json数据解析做简单总结. (一) 对于服务器返回的数据若没有做类型说明,需要 ...
- php+jquery+ajax+json简单小例子
直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...
- JFreeChart与AJAX+JSON+ECharts两种处理方式生成热词统计可视化图表
本篇的思想:对HDFS获取的数据进行两种不同的可视化图表处理方式.第一种JFreeChar可视化处理生成图片文件查看.第二种AJAX+JSON+ECharts实现可视化图表,并呈现于浏览器上. 对 ...
- Struts+Spring+Hibernate项目整合AJAX+JSON
1.什么是AJAX AJAX是 "Asynchronous JavaScript and XML" 的简称,即异步的JavaScript和XML. 所谓异步,就是提交一个请求不必等 ...
- 基于Jquery+Ajax+Json+存储过程 高效分页
在做后台开发中,都会有大量的列表展示,下面给大家给大家分享一套基于Jquery+Ajax+Json+存储过程高效分页列表,只需要传递几个参数即可.当然代码也有改进的地方,如果大家有更好的方法,愿留下宝 ...
随机推荐
- 分布式技术 memcached
memcached 是一个高性能的分布式内存对象缓存系统,用于动态web应用,以减轻数据库负载,它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.memcache ...
- Qt QTreeWidget节点的添加+双击响应+删除详解
转自: http://www.cnblogs.com/Romi/archive/2012/08/08/2628163.html 承接该文http://www.cnblogs.com/Romi/arch ...
- Ajax-快速上手前后端交互
Ajax 在之前自己也有总结过关于Ajax的笔记,各种的懵圈,通过一次项目和几次的总结和分享,我对Ajax终于算是有了一定的理解和自己的见解.相信大家见过和度过了很多的关于Ajax的什么前世今生.大刀 ...
- 【VS2013编译DirectX Tutorials时遇到的错误】FXC : error X3501: 'main': entrypoint not found
修改于2015年9月6日: 去年写这篇解决方案的时候其实对着色器编程还一知半解,摸索了一个治标不治本的方法解决问题,结果被一个CSDN的博主原封不动抄了去,还打上个原创的标签= =,简直无语... 最 ...
- JavaScript实现文章复制加版权信息
function addLink() { var body_element = document.getElementsByTagName('body')[0]; var selection; if( ...
- (转)Java发送http请求(get 与post方法请求)
本文转载于:http://bijian1013.iteye.com/blog/2166855 package com.bijian.study; import java.io.BufferedRead ...
- LeetCode OJ:Construct Binary Tree from Preorder and Inorder Traversal(从前序以及中序遍历结果中构造二叉树)
Given preorder and inorder traversal of a tree, construct the binary tree. Note:You may assume that ...
- centos type.h 编译错误问题
# ifndef __int8_t_defined # define __int8_t_defined __intN_t (, __QI__); __intN_t (, __HI__); __intN ...
- Unity3D教程:制作与载入AssetBundle
通常我们在游戏程式执行过程,并不希望一次将全部的资源都载入,而比较希望实际上有使用到的才载入,以免占用多余的记忆体,所以我们可能会尽量规划好不同功能的场景,在需要时才载入场景并释放掉前个场景中不需要的 ...
- redis有序集合的使用
Redis 有序集合(sorted set) Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员. 不同的是每个元素都会关联一个double类型的分数.redis正是通过 ...