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 相关文章推荐
浅谈下拉菜单中的Option对象
May 10 Javascript
通用javascript代码判断版本号是否在版本范围之间
Nov 29 Javascript
基于JavaScript实现定时跳转到指定页面
Jan 01 Javascript
AngularJS 作用域详解及示例代码
Aug 17 Javascript
JS封装的选项卡TAB切换效果示例
Sep 20 Javascript
JS限制条件补全问题实例分析
Dec 16 Javascript
详解离线安装npm包的几种方法
Nov 25 Javascript
如何使用puppet替换文件中的string
Dec 06 Javascript
bootstrap 日期控件 datepicker被弹出框dialog覆盖的解决办法
Jul 09 Javascript
JS中this的4种绑定规则详解
Feb 04 Javascript
如何手写简易的 Vue Router
Oct 10 Javascript
JavaScript声明变量和数据类型的转换
Apr 12 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
利用discuz实现PHP大文件上传应用实例代码
2008/11/14 PHP
php数组函数序列之krsort()- 对数组的元素键名进行降序排序,保持索引关系
2011/11/02 PHP
Zend的MVC机制使用分析(二)
2013/05/02 PHP
PHP中提问频率最高的11个面试题和答案
2014/09/02 PHP
PHP对象、模式与实践之高级特性分析
2016/12/08 PHP
thinkPHP中session()方法用法详解
2016/12/08 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
2018/02/08 PHP
laravel框架创建授权策略实例分析
2019/11/22 PHP
ThinkPHP3.1.2 使用cli命令行模式运行的方法
2020/04/14 PHP
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
JS获取键盘上任意按键的值(实例代码)
2013/11/12 Javascript
jQuery实现气球弹出框式的侧边导航菜单效果
2015/09/22 Javascript
JS创建对象几种不同方法详解
2016/03/01 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
异步加载JS、CSS代码(推荐)
2016/06/15 Javascript
微信小程序 闭包写法详细介绍
2016/12/14 Javascript
原生JS获取元素集合的子元素宽度实例
2016/12/14 Javascript
JS动态遍历json中所有键值对的方法(不知道属性名的情况)
2016/12/28 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
BootStrap的select2既可以查询又可以输入的实现代码
2017/02/17 Javascript
原生js实现表格翻页和跳转
2020/09/29 Javascript
[01:11:08]Winstrike vs NB 2018国际邀请赛淘汰赛BO1 8.21
2018/08/22 DOTA
python 删除列表里所有空格项的方法总结
2018/04/18 Python
Python制作exe文件简单流程
2019/01/24 Python
Tensorflow进行多维矩阵的拆分与拼接实例
2020/02/07 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
全球独特生活方式产品和礼品购物网站:AHAlife
2018/09/18 全球购物
JBL美国官方商店:扬声器、耳机等
2019/12/01 全球购物
领先的荷兰线上超市:荷兰之家Holland at Home(支持中文)
2021/01/21 全球购物
土地转让协议书范本
2014/04/15 职场文书
java设计模式--三种工厂模式详解
2021/07/21 Java/Android
Java设计模式之享元模式示例详解
2022/03/03 Java/Android
JS函数式编程实现XDM一
2022/06/16 Javascript
mysql数据库如何转移到oracle
2022/12/24 MySQL