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 相关文章推荐
用js实现多域名不同文件的调用方法
Jan 12 Javascript
12个非常有创意的JavaScript小游戏
Mar 18 Javascript
jQuery bxCarousel实现图片滚动切换效果示例代码
May 15 Javascript
用Jquery.load载入页面实现局部刷新
Jan 22 Javascript
JS使用replace()方法和正则表达式进行字符串的搜索与替换实例
Apr 10 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
Bootstrap每天必学之工具提示(Tooltip)插件
Apr 26 Javascript
jQuery EasyUI ProgressBar进度条组件
Feb 28 Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 Javascript
解决angularjs WdatePicker ng-model的问题
Sep 13 Javascript
Vue源码中要const _toStr = Object.prototype.toString的原因分析
Dec 09 Javascript
原生JS检测CSS3动画是否结束的方法详解
Jan 27 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 5.0 Pear安装方法
2006/12/06 PHP
php 调用远程url的六种方法小结
2009/11/02 PHP
php 无限级分类,超级简单的无限级分类,支持输出树状图
2014/06/29 PHP
php数组指针操作详解
2017/02/14 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP的介绍以及优势详细分析
2019/09/05 PHP
js导出table到excel同时兼容FF和IE示例
2013/09/03 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
jQuery中:image选择器用法实例
2015/01/03 Javascript
JavaScript数据结构和算法之二叉树详解
2015/02/11 Javascript
javascript结合canvas实现图片旋转效果
2015/05/03 Javascript
JavaScript实现的浮动层框架用法实例分析
2015/10/10 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
jQuery使用deferreds串行多个ajax请求
2016/08/22 Javascript
Vue-resource实现ajax请求和跨域请求示例
2017/02/23 Javascript
Vue插件从封装到发布的完整步骤记录
2019/02/28 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
2019/05/31 jQuery
vue 防止页面加载时看到花括号的解决操作
2020/11/09 Javascript
[07:03]显微镜下的DOTA2第九期——430圣堂刺客杀戮秀
2014/06/20 DOTA
python 正则表达式 概述及常用字符
2009/05/04 Python
Python实现竖排打印传单手机号码易撕条
2015/03/16 Python
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
详解python读取image
2019/04/03 Python
python跨文件使用全局变量的实现
2020/11/17 Python
CSS中的字体大小设置属性总结
2016/05/24 HTML / CSS
html2canvas把div保存图片高清图的方法示例
2018/03/05 HTML / CSS
Ted Baker英国官网:男士和女士服装及配件
2017/03/13 全球购物
法国面料和小百货在线商店:Mondial Tissus
2019/03/23 全球购物
学期自我鉴定范文
2013/10/01 职场文书
关于赌博的检讨书
2014/01/08 职场文书
委托书格式要求
2015/01/28 职场文书
公司年会开场白
2015/06/01 职场文书
2015年统计员个人工作总结
2015/07/23 职场文书
安全生产会议制度
2015/08/06 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
2020年个人安全保证书参考模板
2020/01/08 职场文书