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动态操作表格实例(添加,删除行,列及单元格)
Nov 25 Javascript
JS正则表达式验证数字代码
Jan 28 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
Feb 17 Javascript
js创建对象几种方式的优缺点对比
Sep 28 Javascript
JS敏感词过滤代码
Dec 23 Javascript
基于vue实现swipe轮播组件实例代码
May 24 Javascript
JavaScript数组_动力节点Java学院整理
Jun 26 Javascript
纯js实现画一棵树的示例
Sep 05 Javascript
Vue Cli3 创建项目的方法步骤
Oct 15 Javascript
vue cli3.0结合echarts3.0与地图的使用方法示例
Mar 26 Javascript
详解Vue3 Composition API中的提取和重用逻辑
Apr 29 Javascript
关于antd tree 和父子组件之间的传值问题(react 总结)
Jun 02 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
Mysql数据库操作类( 1127版,提供源码下载 )
2010/12/02 PHP
php数组函数序列之array_key_exists() - 查找数组键名是否存在
2011/10/29 PHP
PHP中定义数组常量(array常量)的方法
2014/11/17 PHP
php实现批量删除挂马文件及批量替换页面内容完整实例
2016/07/08 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
extjs 学习笔记(一) 一些基础知识
2009/10/13 Javascript
jQuery用unbind方法去掉hover事件及其他方法介绍
2013/03/18 Javascript
jquery实现metro效果示例代码
2013/09/06 Javascript
Jquery通过Ajax访问XML数据的小例子
2013/11/18 Javascript
jquery checkbox实现单选小例
2013/11/27 Javascript
jQuery实用函数用法总结
2014/08/29 Javascript
jQuery实现数字加减效果汇总
2014/12/16 Javascript
js鼠标点击按钮切换图片-图片自动切换-点击左右按钮切换特效代码
2015/09/02 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
JavaScript中使用数组方法汇总
2016/02/16 Javascript
打造通用的匀速运动框架(实例讲解)
2017/10/17 Javascript
Vue基于NUXT的SSR详解
2017/10/24 Javascript
判断文字超过2行添加展开按钮,未超过则不显示,溢出部分显示省略号
2019/04/28 Javascript
swiper4实现移动端导航切换
2020/10/16 Javascript
openLayer4实现动态改变标注图标
2020/08/17 Javascript
python实现在IDLE中输入多行的方法
2018/04/19 Python
Python 实现中值滤波、均值滤波的方法
2019/01/09 Python
Django 开发环境配置过程详解
2019/07/18 Python
python异常触发及自定义异常类解析
2019/08/06 Python
Python使用get_text()方法从大段html中提取文本的实例
2019/08/27 Python
Laravel框架表单验证格式化输出的方法
2019/09/25 Python
如何基于python实现不邻接植花
2020/05/01 Python
HTML5 Canvas概述
2009/08/26 HTML / CSS
房产公证书范本
2014/04/10 职场文书
2014年街道办事处工作总结
2014/12/11 职场文书
2015年人事工作总结范文
2015/04/09 职场文书
创业计划书之婴幼儿游泳馆
2019/09/11 职场文书
Oracle笔记
2021/04/05 Oracle
Django给表单添加honeypot验证增加安全性
2021/05/06 Python
Python语法学习之进程的创建与常用方法详解
2022/04/08 Python
python模板入门教程之flask Jinja
2022/04/11 Python