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 兼容FF的onmouseenter和onmouseleave的代码
Jul 19 Javascript
javascript Excel操作知识点
Apr 24 Javascript
window.requestAnimationFrame是什么意思,怎么用
Jan 13 Javascript
jquery使用ajax实现微信自动回复插件
Apr 28 Javascript
JS判断变量是否为空判断是否null
Jul 25 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
Web前端开发之水印、图片验证码
Nov 27 Javascript
livereload工具实现前端可视化开发【推荐】
Dec 23 Javascript
bootstrap multiselect下拉列表功能
Aug 22 Javascript
layui字体图标 loading图标静止不旋转的解决方法
Sep 23 Javascript
package.json中homepage属性的作用详解
Mar 11 Javascript
前端框架ECharts dataset对数据可视化的高级管理
Dec 24 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
php访问查询mysql数据的三种方法
2006/10/09 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
PHP解密Unicode及Escape加密字符串
2015/05/17 PHP
PHP模板解析类实例
2015/07/09 PHP
PHP编辑器PhpStrom运行缓慢问题
2017/02/21 PHP
Laravel如何自定义command命令浅析
2019/03/23 PHP
laravel框架的安装与路由实例分析
2019/10/11 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
Javascript 网页水印(非图片水印)实现代码
2010/03/01 Javascript
JS控制显示隐藏兼容问题(IE6、IE7、IE8)
2010/04/01 Javascript
js 单击式的下拉菜单效果实例
2013/08/13 Javascript
js写出遮罩层登陆框和对联广告并自动跟随滚动条滚动
2014/04/29 Javascript
原生JS实现仿淘宝网左侧商品分类菜单效果代码
2015/09/10 Javascript
使用jQuery判断浏览器滚动条位置的方法
2016/05/30 Javascript
[01:02:03]2014 DOTA2华西杯精英邀请赛 5 24 NewBee VS VG
2014/05/26 DOTA
用Python将动态GIF图片倒放播放的方法
2016/11/02 Python
python numpy和list查询其中某个数的个数及定位方法
2018/06/27 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
2018/08/03 Python
在Python中将函数作为另一个函数的参数传入并调用的方法
2019/01/22 Python
opencv3/Python 稠密光流calcOpticalFlowFarneback详解
2019/12/11 Python
pandas 对group进行聚合的例子
2019/12/27 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Django ForeignKey与数据库的FOREIGN KEY约束详解
2020/05/20 Python
Jupyter Notebook 安装配置与使用详解
2021/01/06 Python
CSS3中的Transition过度与Animation动画属性使用要点
2016/05/20 HTML / CSS
英国百安居装饰建材网上超市:B&Q
2016/09/13 全球购物
奥地利票务门户网站:oeticket.com
2019/12/31 全球购物
自考生毕业自我鉴定
2013/10/10 职场文书
新年抽奖获奖感言
2014/03/02 职场文书
2014年数学教师工作总结
2014/12/03 职场文书
任命通知范文
2015/04/21 职场文书
2015年电厂工作总结范文
2015/05/13 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
Vue实现动态查询规则生成组件
2021/05/27 Vue.js
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
彻底卸载VMware虚拟机的超详细步骤记录
2022/07/15 Servers