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 相关文章推荐
使用户点击后退按钮使效三行代码
Jul 07 Javascript
JavaScript 版本自动生成文章摘要
Jul 23 Javascript
了解一点js的Eval函数
Jul 26 Javascript
Javascript图像处理—虚拟边缘介绍及使用方法
Dec 27 Javascript
代码分析jQuery四种静态方法使用
Jul 23 Javascript
深入理解jQuery之防止冒泡事件
May 24 Javascript
AngularJS基础 ng-readonly 指令简单示例
Aug 02 Javascript
详解Chai.js断言库API中文文档
Jan 31 Javascript
layui自己添加图片按钮并点击跳转页面的例子
Sep 14 Javascript
JS实现图片幻灯片效果代码实例
May 21 Javascript
javascript实现前端分页功能
Nov 26 Javascript
通过滑动翻页效果实现和移动端click事件问题
Jan 26 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 单引号与双引号的区别
2009/11/24 PHP
php提交表单时判断 if($_POST[submit])与 if(isset($_POST[submit])) 的区别
2011/02/08 PHP
PHP设置图片文件上传大小的具体实现方法
2013/10/11 PHP
php结合web uploader插件实现分片上传文件
2016/05/10 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
prototype 中文参数乱码解决方案
2009/11/09 Javascript
js注意img图片的onerror事件的分析
2011/01/01 Javascript
location对象的属性和方法应用(解析URL)
2013/04/12 Javascript
JavaScript自定义等待wait函数实例分析
2015/03/23 Javascript
JQuery实现鼠标滚轮滑动到页面节点
2015/07/28 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
js仿QQ中对联系人向左滑动、滑出删除按钮的操作
2016/04/07 Javascript
一句jQuery代码实现返回顶部效果(简单实用)
2016/12/28 Javascript
AngularJS中$http的交互问题
2017/03/29 Javascript
vue教程之toast弹框全局调用示例详解
2020/08/24 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
Vue2.0实现组件之间数据交互和通信操作示例
2019/05/16 Javascript
Node在Controller层进行数据校验的过程详解
2020/08/28 Javascript
以一段代码为实例快速入门Python2.7
2015/03/31 Python
python docx 中文字体设置的操作方法
2018/05/08 Python
关于python写入文件自动换行的问题
2018/06/23 Python
python实现Virginia无密钥解密
2019/03/20 Python
使用python分析统计自己微信朋友的信息
2019/07/19 Python
如何基于Python + requests实现发送HTTP请求
2020/01/13 Python
Python不支持 i ++ 语法的原因解析
2020/07/22 Python
英国家电直销:Appliances Direct
2016/09/22 全球购物
Lookfantastic台湾:英国彩妆美发保养购物网
2018/03/26 全球购物
亚洲颇具影响力的男性在线购物零售商:His
2019/11/24 全球购物
英国在线玫瑰专家:InterRose
2019/12/01 全球购物
出纳工作检讨书
2014/10/18 职场文书
优秀学生干部事迹材料
2014/12/24 职场文书
2015年五一劳动节慰问信
2015/03/23 职场文书
创业计划书之暑假培训班
2019/11/09 职场文书
Nginx tp3.2.3 404问题解决方案
2021/03/31 Servers
JavaScript原型链详解
2021/11/07 Javascript