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 相关文章推荐
Javascript实例教程(19) 使用HoTMetal(2)
Dec 23 Javascript
超级兔子让浮动层消失的前因后果
Mar 09 Javascript
自己写了一个展开和收起的多更能型的js效果
Mar 05 Javascript
Document:getElementsByName()使用方法及示例
Oct 28 Javascript
JavaScript学习笔记之Function对象
Jan 22 Javascript
JavaScript中使用指数方法Math.exp()的简介
Jun 15 Javascript
jQuery 插件实现随机自由弹跳气泡样式
Jan 12 Javascript
node.js使用免费的阿里云ip查询获取ip所在地【推荐】
Sep 03 Javascript
Vue2.0 v-for filter列表过滤功能的实现
Sep 07 Javascript
js监听html页面的上下滚动事件方法
Sep 11 Javascript
VuePress 快速踩坑小结
Feb 14 Javascript
小程序获取当前位置加搜索附近热门小区及商区的方法
Apr 08 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
Terran兵种对照表
2020/03/14 星际争霸
类的另类用法--数据的封装
2006/10/09 PHP
ecshop后台编辑器替换成ueditor编辑器
2015/03/03 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
2016/12/12 PHP
PHP图像处理技术实例总结【绘图、水印、验证码、图像压缩】
2018/12/08 PHP
PHP基础之输出缓冲区基本概念、原理分析
2019/06/19 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
php使用goto实现自动重启swoole、reactphp、workerman服务的代码
2020/04/13 PHP
PHP dirname简单使用代码实例
2020/11/13 PHP
jquery jqPlot API 中文使用教程(非常强大的图表工具)
2011/08/15 Javascript
alert出数组中的随即值代码
2014/09/25 Javascript
javascript解析json实例详解
2014/11/05 Javascript
jQuery中hover方法和toggle方法使用指南
2015/02/27 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
详细谈谈javascript的对象
2016/07/31 Javascript
vue学习笔记之指令v-text && v-html && v-bind详解
2017/05/12 Javascript
node.js+captchapng+jsonwebtoken实现登录验证示例
2017/08/17 Javascript
VueJs监听window.resize方法示例
2018/01/17 Javascript
Vue封装一个简单轻量的上传文件组件的示例
2018/03/21 Javascript
详解在React里使用"Vuex"
2018/04/02 Javascript
jQuery实现获取及设置CSS样式操作详解
2018/09/05 jQuery
一文了解vue-router之hash模式和history模式
2019/05/31 Javascript
小程序实现左滑删除效果
2019/07/25 Javascript
LayUi数据表格自定义赋值方式
2019/10/26 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
vue自定义指令和动态路由实现权限控制
2020/08/28 Javascript
Python在图片中添加文字的两种方法
2017/04/29 Python
Python线性拟合实现函数与用法示例
2018/12/13 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
如何基于matlab相机标定导出xml文件
2020/11/02 Python
python基于opencv实现人脸识别
2021/01/04 Python
python自动生成证件号的方法示例
2021/01/14 Python
党员自我评议个人对照检查材料
2014/09/16 职场文书
学雷锋团日活动总结
2015/05/06 职场文书
CSS3实现的水平标题菜单
2021/04/14 HTML / CSS
SQLyog的下载、安装、破解、配置教程(MySQL可视化工具安装)
2022/09/23 MySQL