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 相关文章推荐
jQuery函数map()和each()介绍及异同点分析
Nov 08 Javascript
js实现刷新iframe的方法汇总
Apr 27 Javascript
jQuery+css3实现Ajax点击后动态删除功能的方法
Aug 10 Javascript
基于jquery实现简单的手风琴特效
Nov 24 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
Jul 12 Javascript
Vuejs第六篇之Vuejs与form元素实例解析
Sep 05 Javascript
Angular动态添加、删除输入框并计算值实例代码
Mar 29 Javascript
es6中的解构赋值、扩展运算符和rest参数使用详解
Sep 28 Javascript
React组件中的this的具体使用
Feb 28 Javascript
vue组件tabbar使用方法详解
Nov 06 Javascript
解决vue组件props传值对象获取不到的问题
Jun 06 Javascript
vue路由传参的基本实现方式小结【三种方式】
Feb 05 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取得一个类的属性和方法的实现代码
2011/05/22 PHP
PHP下通过exec获得计算机的唯一标识[CPU,网卡 MAC地址]
2011/06/09 PHP
php安全开发 添加随机字符串验证,防止伪造跨站请求
2013/02/14 PHP
详解yii2使用多个数据库的案例
2017/06/16 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP一致性hash分布式算法封装类定义与用法示例
2018/08/04 PHP
Laravel关联模型中过滤结果为空的结果集(has和with区别)
2018/10/18 PHP
PHP设计模式(五)适配器模式Adapter实例详解【结构型】
2020/05/02 PHP
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
javascript同页面多次调用弹出层具体实例代码
2013/08/16 Javascript
再谈JavaScript线程
2015/07/10 Javascript
jquery实现Slide Out Navigation滑出式菜单效果代码
2015/09/07 Javascript
jQuery使用Selectator插件实现多选下拉列表过滤框(附源码下载)
2016/04/08 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
Bootstrap 3多级下拉菜单实例
2017/11/23 Javascript
Vue实现导出excel表格功能
2018/03/30 Javascript
JS实现快递单打印功能【推荐】
2018/06/21 Javascript
利用JS实现一个同Excel表现的智能填充算法
2018/08/13 Javascript
Vue.js中该如何自己维护路由跳转记录
2019/05/19 Javascript
Node.js API详解之 V8模块用法实例分析
2020/06/05 Javascript
[01:46]TI4西雅图DOTA2前线报道 中国选手抱团调时差
2014/07/08 DOTA
解决PyCharm控制台输出乱码的问题
2019/01/16 Python
Python的Tkinter点击按钮触发事件的例子
2019/07/19 Python
Python如何在DataFrame增加数值
2020/02/14 Python
使用Filters滤镜弥补CSS3的跨浏览器问题以及兼容低版本IE
2013/01/23 HTML / CSS
详解HTML5中rel属性的prefetch预加载功能使用
2016/05/06 HTML / CSS
Glamest意大利:女性在线奢侈品零售店
2019/04/28 全球购物
Vision Direct比利时:在线订购隐形眼镜
2019/08/27 全球购物
哈萨克斯坦最大的时装、鞋子和配饰在线商店:Lamoda.kz
2019/11/19 全球购物
大专生工程监理求职信
2013/10/04 职场文书
寄语学生的话
2014/04/10 职场文书
讲文明树新风演讲稿
2014/05/12 职场文书
开票员岗位职责
2015/02/12 职场文书
因个人原因离职的辞职信范文
2015/05/12 职场文书
《穷人》教学反思
2016/02/19 职场文书
详解Flutter网络请求Dio库的使用及封装
2022/04/14 Java/Android