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 相关文章推荐
类似CSDN图片切换效果脚本
Sep 17 Javascript
日期处理的js库(迷你版)--自建js库总结
Nov 21 Javascript
7个去伪存真的JavaScript面试题
Jan 07 Javascript
JavaScript jquery及AJAX小结
Jan 24 Javascript
JS实现简单的右下角弹出提示窗口完整实例
Jun 21 Javascript
Javascript学习之谈谈JS的全局变量跟局部变量(推荐)
Aug 28 Javascript
基于jQuery实现Accordion手风琴自定义插件
Oct 13 Javascript
JS/jQuery判断DOM节点是否存在的简单方法
Nov 24 Javascript
简单实现js拖拽效果
Jul 25 Javascript
用vue2.0实现点击选中active其他选项互斥的效果
Apr 12 Javascript
vue实现2048小游戏功能思路详解
May 09 Javascript
Swiper实现导航栏滚动效果
Oct 16 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 Global定义全局变量使用说明
2013/08/15 PHP
destoon实现调用热门关键字的方法
2014/07/15 PHP
JavaScript 代码压缩工具小结
2012/02/27 Javascript
JavaScript实现复制功能各浏览器支持情况实测
2013/07/18 Javascript
NodeJS学习笔记之Connect中间件模块(二)
2015/01/27 NodeJs
javascript实现根据iphone屏幕方向调用不同样式表的方法
2015/07/13 Javascript
[原创]Bootstrap 中下拉菜单修改成鼠标悬停直接显示
2016/04/14 Javascript
Javascript 普通函数和构造函数的区别
2016/11/05 Javascript
Bootstrap导航简单实现代码
2017/03/06 Javascript
使用jquery datatable和bootsrap创建表格实例代码
2017/03/17 Javascript
Vue.js点击切换按钮改变内容的实例讲解
2018/08/22 Javascript
运用js实现图层拖拽的功能
2019/05/24 Javascript
javascript实现点击星星小游戏
2019/12/24 Javascript
python去除所有html标签的方法
2015/05/05 Python
python连接mysql实例分享
2016/10/09 Python
Python可变参数用法实例分析
2017/04/02 Python
django.db.utils.ProgrammingError: (1146, u“Table‘’ doesn’t exist”)问题的解决
2018/07/13 Python
Python爬虫基础之XPath语法与lxml库的用法详解
2018/09/13 Python
浅谈python在提示符下使用open打开文件失败的原因及解决方法
2018/11/30 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
python 通过手机号识别出对应的微信性别(实例代码)
2019/12/22 Python
keras分类模型中的输入数据与标签的维度实例
2020/07/03 Python
python通过cython加密代码
2020/12/11 Python
anaconda安装pytorch1.7.1和torchvision0.8.2的方法(亲测可用)
2021/02/01 Python
pytho matplotlib工具栏源码探析一之禁用工具栏、默认工具栏和工具栏管理器三种模式的差异
2021/02/25 Python
html5 css3网站菜单实现代码
2013/12/23 HTML / CSS
HTML5学习笔记之html5与传统html区别
2016/01/06 HTML / CSS
HTML5 Canvas实现图片缩放、翻转、颜色渐变的代码示例
2016/02/28 HTML / CSS
智能旅行箱:Horizn Studios
2018/04/30 全球购物
Pharmacy Online中文直邮网站:澳洲大型药房
2020/06/27 全球购物
在C++ 程序中调用被C 编译器编译后的函数,为什么要加extern "C"
2014/08/09 面试题
模具毕业生推荐信
2014/02/15 职场文书
产品设计开发计划书
2014/05/07 职场文书
logback 实现给变量指定默认值
2021/08/30 Java/Android
Mysql分库分表之后主键处理的几种方法
2022/02/15 MySQL
一文弄懂MySQL索引创建原则
2022/02/28 MySQL