jQuery基于ajax操作json数据简单示例


Posted in Javascript onJanuary 05, 2017

本文实例讲述了jQuery基于ajax操作json数据的方法。分享给大家供大家参考,具体如下:

jQuery Ajax 实例演示

jQuery Ajax 的三种格式,在与后台进行数据交互的时候可以是json格式也可以是xml格式,本人建议将数据转化成json格式。

Xml与json的比较

1、可读性

JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。

2、可扩展性

XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。

3、编码难度

XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工 具也能写出JSON的代码,可是要写好XML就不太容易了。

4、解码难度

XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。

<html>
<head>
<title>jQuery Ajax 实例演示</title>
</head>
<script language="javascript" src="../lib/jquery.js"></script>
<script language="javascript">
$(document).ready(function ()
{
  $('#send_ajax').click(function (){
   var params=$('input').serialize(); //序列化表单的值
   $.ajax({
    url:'ajax_json.php', //后台处理程序
    type:'post',     //数据发送方式
    dataType:'json',   //接受数据格式
    data:params,     //要传递的数据
    success:update_page //回传函数(这里是函数名)
   });
  });
//$.post()方式:
$('#test_post').click(function (){
  $.post(
   'ajax_json.php',
   {
    username:$('#input1').val(),
    age:$('#input2').val(),
    sex:$('#input3').val(),
    job:$('#input4').val()
   },
   function (data) //回传函数
   {
    var myjson='';
    eval('myjson=' + data + ';');
    $('#result').html("姓名:" + myjson.username + "<br/>工作:" + myjson['job']);
   }
  );
  });
//$.get()方式:
$('#test_get').click(function ()
 'ajax_json.php',
   {
    username:$("#input1").val(),
    age:$("#input2").val(),
    sex:$("#input3").val(),
    job:$("#input4").val()
   },
   function(data) //回传函数
   {
    var myjson='';
    eval("myjson=" + data + ";");
    $("#result").html(myjson.job);
   }
  );
});
});
function update_page (json) //回传函数实体,参数为XMLhttpRequest.responseText
{
var str="姓名:"+json.username+"<br />";
str+="年龄:"+json.age+"<br />";
str+="性别:"+json.sex+"<br />";
str+="工作:"+json.job+"<br />";
str+="追加测试:"+json.append;
$("#result").html(str);
}
</script>
<body>
<div id="result" style="background:orange;border:1px solid red;width:300px;height:200px;"></div>
<form id="formtest" action="" method="post">
  <p><span>输入姓名:</span><input type="text" name="username" id="input1" /></p>
  <p><span>输入年龄:</span><input type="text" name="age" id="input2" /></p>
  <p><span>输入性别:</span><input type="text" name="sex" id="input3" /></p>
  <p><span>输入工作:</span><input type="text" name="job" id="input4" /></p>
</form>
<button id="send_ajax">提交</button>
<button id="test_post">POST提交</button>
<button id="test_get">GET提交</button>
</body>
</html>

PHP 文件 ajax_json.php:

<?php
//$arr = $_POST; //若以$.get()方式发送数据,则要改成$_GET.或者干脆:$_REQUEST
$arr = $_REQUEST;
$arr['append'] = '测试字符串';
//print_r($arr);
$myjson = my_json_encode($arr);
echo $myjson;
function my_json_encode($phparr)
{
  if(function_exists("json_encode"))
  {
   return json_encode($phparr);
  }
  else
  {
   require_once 'json/json.class.php';
   $json = new Services_JSON;
   return $json->encode($phparr);
  }
}
?>
Javascript 相关文章推荐
Javascript客户端脚本的设计和应用
Aug 21 Javascript
javascript 操作select下拉列表框的一点小经验
Mar 20 Javascript
如何动态的导入js文件具体该怎么实现
Jan 14 Javascript
javascript实现数字+字母验证码的简单实例
Feb 10 Javascript
javascript下拉列表中显示树形菜单的实现方法
Nov 17 Javascript
jQuery Ajax 加载数据时异步显示加载动画
Aug 01 Javascript
JS函数节流和函数防抖问题分析
Dec 18 Javascript
JS动态插入脚本和插入引用外部链接脚本的方法
May 21 Javascript
详解性能更优越的小程序图片懒加载方式
Jul 18 Javascript
原生JavaScript创建不可变对象的方法简单示例
May 07 Javascript
在vs code 中如何创建一个自己的 Vue 模板代码
Nov 10 Javascript
vue 根据选择的月份动态展示日期对应的星期几
Feb 06 Vue.js
js将字符串中的每一个单词的首字母变为大写其余均为小写
Jan 05 #Javascript
如何提高Dom访问速度
Jan 05 #Javascript
AngularJS中run方法的巧妙运用
Jan 04 #Javascript
JavaScript中的 attribute 和 jQuery中的 attr 方法浅析
Jan 04 #Javascript
快速实现JS图片懒加载(可视区域加载)示例代码
Jan 04 #Javascript
基于jQuery实现选项卡效果
Jan 04 #Javascript
jQuery和CSS仿京东仿淘宝列表导航菜单
Jan 04 #Javascript
You might like
PhpMyAdmin中无法导入sql文件的解决办法
2010/01/08 PHP
php采用curl实现伪造IP来源的方法
2014/11/21 PHP
Ubuntu12下编译安装PHP5.3开发环境
2015/03/27 PHP
PHP的Yii框架中移除组件所绑定的行为的方法
2016/03/18 PHP
关于Laravel参数验证的一些疑与惑
2019/11/19 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
取选中的radio的值
2010/01/11 Javascript
js日期联动示例
2014/05/02 Javascript
javascript操作Cookie(设置、读取、删除)方法详解
2015/03/18 Javascript
JavaScript实现给按钮加上双重动作的方法
2015/08/14 Javascript
jQuery插件Validate实现自定义校验结果样式
2016/01/18 Javascript
利用angular.copy取消变量的双向绑定与解析
2016/11/25 Javascript
深究AngularJS——ng-checked(回写:带真实案例代码)
2017/06/13 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
vue+webpack 更换主题N种方案优劣分析
2019/10/28 Javascript
jQuery三组基本动画与自定义动画操作实例总结
2020/05/09 jQuery
[02:51]DOTA2英雄基础教程 风暴之灵
2013/12/23 DOTA
[05:39]2014DOTA2国际邀请赛 DK晋级胜者组专访战队国士无双
2014/07/14 DOTA
[01:03]悬念揭晓 11月26日DOTA2完美盛典不见不散
2017/11/23 DOTA
[01:20:38]完美世界DOTA2联赛 GXR vs IO 第一场 11.07
2020/11/09 DOTA
Python数据分析之真实IP请求Pandas详解
2016/11/18 Python
Python登录系统界面实现详解
2019/06/25 Python
Django REST framework 视图和路由详解
2019/07/19 Python
Python Des加密解密如何实现软件注册码机器码
2020/01/08 Python
Python接口开发实现步骤详解
2020/04/26 Python
HTML5实现预览本地图片
2016/02/17 HTML / CSS
医科大学毕业生自荐信
2014/02/03 职场文书
教育学习自我评价
2014/02/03 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
委托书的样本
2015/01/28 职场文书
教师法制教育培训学习心得体会
2016/01/14 职场文书
python 网络编程要点总结
2021/06/18 Python
Flask response响应的具体使用
2021/07/15 Python
SpringBoot整合Minio文件存储
2022/04/03 Java/Android
Java详细解析==和equals的区别
2022/04/07 Java/Android