JS使用JSON作为参数实例分析


Posted in Javascript onJune 23, 2016

本文实例讲述了JS使用JSON作为参数的用法。分享给大家供大家参考,具体如下:

function getAjaxData(urlstr, callback_func, options){
 var myurl = AJAX_HEADER + urlstr + AJAX_TAIL;
 var isAsync = true;//初始化是否同步的属性设置
 var nTimeout = AJAX_TIMEOUT;//初始化请求超时的数据
 var errorCallback = null;
 //利用JSON对象options来修改默认初始化的属性,这样一个参数可以设置多个属性
 if (options)
 {
  if (options.sync) //sync这个参数就是JSON的对象
  {
   isAsync = (options.sync === true) ? false : true;
  }
  if (options.timeout)
  {
   nTimeout = parseInt(options.timeout);
   if (isNaN(nTimeout))
    nTimeout = AJAX_TIMEOUT;
  }
  errorCallback = options.errorCB;
 }
 if ($.browser.mozilla)
 {
  try
  {
   //netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
  }
  catch (exception)
  {
   log.error(exception);
  }
 }
 $.ajax({
  async: isAsync,
  //cache: false,
  type: "GET",
  timeout: nTimeout,
  url: myurl,
  //dataType: ($.browser.msie) ? "text" : "xml",
  error: function(XMLHttpRequest, textStatus){
   try
   {
    if (jQuery.isFunction(errorCallback))
    {
     errorCallback(XMLHttpRequest, textStatus);
    }
    log.error("MAIN : getAjaxData(" + myurl + ") error.");
    log.error("MAIN : XMLHttpRequest.readyState = " + XMLHttpRequest.readyState);
    log.error("MAIN : XMLHttpRequest.status = " + XMLHttpRequest.status);
    log.error("MAIN : textStatus " + textStatus);
   }
   catch (exception)
   {
    log.error(exception);
   }
  },
  success: function(data){
   log.debug("MAIN : getAjaxData(" + myurl + ") sucess.");
   log.trace(data);
   var xml;
   if (typeof data == "string" || typeof data == "number")
   {
    if (!window.ActiveXObject)
    {
     var parser = new DOMParser();
     xml = parser.parseFromString(data, "text/xml");
    }
    else
    {
     //IE
     xml = new ActiveXObject("Microsoft.XMLDOM");
     xml.async = false;
     xml.loadXML(data);
    }
   }
   else
   {
    xml = data;
   }
   if (typeof callback_func == "function")
   {
    callback_func($(xml));
   }
   else
   {
    log.error("callback_func is undefined or not a function");
   }
  }
 });
}
getAjaxData("api/monitoring/status", function($xml){
  var wlan_ret = xml2object($xml);
  if(wlan_ret.type == "response")
  {
   monitoring_status = wlan_ret.response;
   setCurrrentUserHTML();
  }
},
{
  sync:true //通过JSON传递多个数据,防止数据冗余,这里类似于配置信息
});

下面是一个简单的例子:

function testJSON(JSON){
 alert(JSON.name);
 alert(JSON.age);
 alert(JSON.id);
}
testJSON({name:"huangbiao",
  "age":23,
  "id":1});

PS:这里再为大家推荐几款json在线工具,相信大家在今后的开发中可以用得到:

在线JSON代码检验、检验、美化、格式化工具:
http://tools.3water.com/code/json

JSON在线格式化工具:
http://tools.3water.com/code/jsonformat

在线XML/JSON互相转换工具:
http://tools.3water.com/code/xmljson

json代码在线格式化/美化/压缩/编辑/转换工具:
http://tools.3water.com/code/jsoncodeformat

C语言风格/HTML/CSS/json代码格式化美化工具:
http://tools.3water.com/code/ccode_html_css_json

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
JavaScript Base64编码和解码,实现URL参数传递。
Sep 18 Javascript
JS类中定义原型方法的两种实现的区别
Mar 08 Javascript
可编辑下拉框的2种实现方式
Jun 13 Javascript
使用JQ来编写最基本的淡入淡出效果附演示动画
Oct 31 Javascript
jquery实现简单文字提示效果
Dec 02 Javascript
分享javascript实现的冒泡排序代码并优化
Jun 05 Javascript
jQuery Checkbox 全选 反选的简单实例
Nov 29 Javascript
ES6生成器用法实例分析
Apr 10 Javascript
vue里input根据value改变背景色的实例
Sep 29 Javascript
详解Vue内部怎样处理props选项的多种写法
Nov 06 Javascript
Vue scrollBehavior 滚动行为实现后退页面显示在上次浏览的位置
May 27 Javascript
浅谈vuex为什么不建议在action中修改state
Feb 02 Javascript
浅析Bootstrap表格的使用
Jun 23 #Javascript
浅析Bootstrap验证控件的使用
Jun 23 #Javascript
jquery中live()方法和bind()方法区别分析
Jun 23 #Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐)
Jun 23 #Javascript
jQuery根据name属性进行查找的用法分析
Jun 23 #Javascript
每日十条JavaScript经验技巧(二)
Jun 23 #Javascript
jQuery实现查找最近父节点的方法
Jun 23 #Javascript
You might like
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
php 代码优化之经典示例
2011/03/24 PHP
php smarty 二级分类代码和模版循环例子
2011/06/16 PHP
浅析PHP文件下载原理
2014/12/25 PHP
php中上传文件的的解决方案
2018/09/25 PHP
在laravel中实现将查询的对象转换为多维数组的函数
2019/10/21 PHP
认识延迟时间为0的setTimeout
2008/05/16 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
编写Js代码要注意的几条规则
2010/09/10 Javascript
jQuery设置与获取HTML,文本和值的简单实例
2014/02/26 Javascript
使用javascript实现雪花飘落的效果
2015/01/13 Javascript
JavaScript iframe数据共享接口实现方法
2016/01/06 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
jQuery插件实现文件上传功能(支持拖拽)
2020/08/27 Javascript
原生js实现tab选项卡切换
2020/03/23 Javascript
js实现控制textarea输入字符串的个数,鼠标按下抬起判断输入字符数
2016/10/25 Javascript
canvas实现动态小球重叠效果
2017/02/06 Javascript
javascript中apply/call和bind的使用
2017/02/15 Javascript
jQuery.Ajax()的data参数类型详解
2017/07/23 jQuery
ES6学习教程之模板字符串详解
2017/10/09 Javascript
原生JavaScrpit中异步请求Ajax实现方法
2017/11/03 Javascript
angularJS1 url中携带参数的获取方法
2018/10/09 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
JS实现贪吃蛇游戏
2019/11/15 Javascript
js面向对象方式实现拖拽效果
2021/03/03 Javascript
举例区分Python中的浅复制与深复制
2015/07/02 Python
用Python写飞机大战游戏之pygame入门(4):获取鼠标的位置及运动
2015/11/05 Python
python程序中的线程操作 concurrent模块使用详解
2019/09/23 Python
Django+python服务器部署与环境部署教程详解
2020/03/30 Python
CSS3网格的三个新特性详解
2014/04/04 HTML / CSS
介绍一下Transact-SQL中SPACE函数的用法
2015/09/01 面试题
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
房产代理公证处委托书
2014/04/04 职场文书
2014年宣传部工作总结
2014/11/12 职场文书
大学四年个人总结
2015/03/03 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python