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 相关文章推荐
用Javscript实现表单复选框的全选功能
May 25 Javascript
使用jQuery+HttpHandler+xml模拟一个三级联动的例子
Aug 09 Javascript
20款效果非常棒的 jQuery 插件小结分享
Nov 18 Javascript
电子商务网站上的常用的js放大镜效果
Dec 08 Javascript
jquery.validate使用时遇到的问题
May 25 Javascript
JS+CSS实现仿msn风格选项卡效果代码
Oct 22 Javascript
移动端翻页插件dropload.js(支持Zepto和jQuery)
Jul 27 Javascript
jQuery多选框选择数量限制方法
Feb 08 Javascript
ES6字符串模板,剩余参数,默认参数功能与用法示例
Apr 06 Javascript
基于Bootstrap表单验证功能
Nov 17 Javascript
微信小程序实现tab切换效果
Nov 21 Javascript
关于vue里页面的缓存详解
Nov 04 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判断访问IP的方法
2015/06/19 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
php计数排序算法的实现代码(附四个实例代码)
2020/03/31 PHP
javascript Prototype 对象扩展
2009/05/15 Javascript
window.showModalDialog参数传递中含有特殊字符的处理方法
2013/06/06 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
调用HttpHanlder的几种返回方式小结
2013/12/20 Javascript
在JavaScript中处理时间之setMinutes()方法的使用
2015/06/11 Javascript
详解参数传递四种形式
2015/07/21 Javascript
JavaScript获取各大浏览器信息图示
2015/11/20 Javascript
jquery对dom节点的操作【推荐】
2016/04/15 Javascript
基于jQuery实现表格的查看修改删除
2016/08/01 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
vue如何集成raphael.js中国地图的方法示例
2017/08/15 Javascript
Vue2.0学习之详解Vue 组件及父子组件通信
2017/12/12 Javascript
angular2/ionic2 实现搜索结果中的搜索关键字高亮的示例
2018/08/17 Javascript
gulp构建小程序的方法步骤
2019/05/31 Javascript
jquery实现垂直手风琴菜单
2020/03/04 jQuery
antd 表格列宽自适应方法以及错误处理操作
2020/10/27 Javascript
nuxt 实现在其它js文件中使用store的方式
2020/11/05 Javascript
[00:47]TI7不朽珍藏III——沙王不朽展示
2017/07/15 DOTA
[01:01:42]Secret vs Optic Supermajor 胜者组 BO3 第二场 6.4
2018/06/05 DOTA
python中查看变量内存地址的方法
2015/05/05 Python
Python学习pygal绘制线图代码分享
2017/12/09 Python
详解利用django中间件django.middleware.csrf.CsrfViewMiddleware防止csrf攻击
2018/10/09 Python
python爬虫的一个常见简单js反爬详解
2019/07/09 Python
Python遍历字典方式就实例详解
2019/12/28 Python
css3和jquery实现的可折叠导航菜单适合放在手机网页的导航菜单
2014/09/02 HTML / CSS
纯css3实现照片墙效果
2014/12/26 HTML / CSS
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
人事主管岗位职责范本
2013/12/04 职场文书
商场消防管理制度
2014/01/12 职场文书
师范教师专业大学生职业生涯规划范文
2014/03/02 职场文书
银行催款通知书
2015/04/17 职场文书
2016教师读书思廉心得体会
2016/01/23 职场文书
使用HTML+Css+transform实现3D导航栏的示例代码
2021/03/31 HTML / CSS