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 相关文章推荐
window.open不被拦截的实现代码
Aug 22 Javascript
鼠标移动到图片名上,显示图片的简单实例
Jul 14 Javascript
js的onload事件及初始化按钮事件示例代码
Sep 25 Javascript
jQuery元素的隐藏与显示实例
Jan 20 Javascript
在javascript中创建对象的各种模式解析
May 16 Javascript
jquery插件bootstrapValidator表单验证详解
Dec 15 Javascript
jQuery无刷新上传之uploadify简单代码
Jan 17 Javascript
javascript事件的传播基础实例讲解(35)
Feb 14 Javascript
微信小程序使用navigateTo数据传递的实例
Sep 26 Javascript
js中getBoundingClientRect的作用及兼容方案详解
Feb 01 Javascript
Vue2 轮播图slide组件实例代码
May 31 Javascript
微信小程序中target和currentTarget的区别小结
Nov 06 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语法(1)
2006/10/09 PHP
使用apache模块rewrite_module (转)
2007/02/14 PHP
php判断变量类型常用方法
2012/04/24 PHP
PHP中使用localhost连接Mysql不成功的解决方法
2014/08/20 PHP
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
js实现兼容IE6与IE7的DIV高度
2010/05/13 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
JS+CSS实现的经典tab选项卡效果代码
2015/09/16 Javascript
JavaScript中对DOM节点的访问、创建、修改、删除
2015/11/16 Javascript
Angularjs注入拦截器实现Loading效果
2015/12/28 Javascript
jquery对象和DOM对象的任意相互转换
2016/02/21 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
JS实现touch 点击滑动轮播实例代码
2017/01/19 Javascript
D3.js中强制异步文件读取同步的几种方法
2017/02/06 Javascript
详解Vue2.x-directive的学习笔记
2017/07/17 Javascript
jQuery EasyUI开发技巧总结
2017/09/26 jQuery
jqgrid实现简单的单行编辑功能
2017/09/30 Javascript
浅谈super-vuex使用体验
2018/06/25 Javascript
create-react-app 修改为多入口编译的方法
2018/08/01 Javascript
vue实现计步器功能
2019/11/01 Javascript
使用vuex较为优雅的实现一个购物车功能的示例代码
2019/12/09 Javascript
请求时token过期自动刷新token操作
2020/09/11 Javascript
python 排序算法总结及实例详解
2016/09/28 Python
Python实现脚本锁功能(同时只能执行一个脚本)
2017/05/10 Python
在Python中表示一个对象的方法
2019/06/25 Python
python的sorted用法详解
2019/06/25 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
python 将html转换为pdf的几种方法
2020/12/29 Python
Foot Locker澳洲官网:美国运动服和鞋类零售商
2019/10/11 全球购物
写一个函数,要求输入一个字符串和一个字符长度,对该字符串进行分隔
2015/07/30 面试题
大二学生学习个人自我评价
2014/01/19 职场文书
司法建议书范文
2014/05/13 职场文书
会计电算化实训报告
2014/11/04 职场文书
宇宙与人观后感
2015/06/05 职场文书
写给同事的离职感言
2015/08/04 职场文书
CSS中实现动画效果-附案例
2022/02/28 HTML / CSS