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 相关文章推荐
了解一点js的Eval函数
Jul 26 Javascript
jQuery使用之处理页面元素用法实例
Jan 19 Javascript
Js实现自定义右键行为
Mar 26 Javascript
基于jQuery实现select下拉选择可输入附源码下载
Feb 03 Javascript
浅谈Javascript中的Label语句
Dec 14 Javascript
微信小程序滚动Tab实现左右可滑动切换
Aug 17 Javascript
Vue触发式全局组件构建的方法
Nov 28 Javascript
Element输入框带历史查询记录的实现示例
Jan 15 Javascript
vue将后台数据时间戳转换成日期格式
Jul 31 Javascript
微信小程序实现一张或多张图片上传(云开发)
Sep 25 Javascript
javascript设计模式 ? 桥接模式原理与应用实例分析
Apr 13 Javascript
vue单元格多列合并的实现
Nov 26 Vue.js
浅析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
使用swoole扩展php websocket示例
2014/02/13 PHP
php中return的用法实例分析
2015/02/28 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
2016/03/21 PHP
Alliance vs Liquid BO3 第一场2.13
2021/03/10 DOTA
jquery与google map api结合使用 控件,监听器
2010/03/04 Javascript
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
javascript文件中引用依赖的js文件的方法
2014/03/17 Javascript
TypeScript 学习笔记之基本类型
2015/06/19 Javascript
js实现商城星星评分的效果
2015/12/29 Javascript
AngularJS模仿Form表单提交的实现代码
2016/12/08 Javascript
Angular.JS通过指令操作DOM的方法
2017/05/10 Javascript
AngularJS实现的回到顶部指令功能实例
2017/05/17 Javascript
详解weex默认webpack.config.js改造
2018/01/08 Javascript
[02:42]DOTA2英雄基础教程 杰奇洛
2013/12/23 DOTA
python实现最小二乘法线性拟合
2019/07/19 Python
Python  Django 母版和继承解析
2019/08/09 Python
python写入数据到csv或xlsx文件的3种方法
2019/08/23 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
Python轻量级web框架bottle使用方法解析
2020/06/13 Python
python中使用.py配置文件的方法详解
2020/11/23 Python
html5的localstorage详解
2017/05/09 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
什么是封装
2013/03/26 面试题
草船借箭教学反思
2014/02/03 职场文书
2014年小班元旦活动方案
2014/02/16 职场文书
民族团结先进集体事迹材料
2014/05/22 职场文书
班级团队活动方案
2014/08/14 职场文书
纪念九一八事变演讲稿:牢记九一八,屈辱怎能忘
2014/09/14 职场文书
小学教师自我剖析材料
2014/09/29 职场文书
逃课检讨书怎么写
2015/01/01 职场文书
丽江古城导游词
2015/02/03 职场文书
如何用JS实现简单的数据监听
2021/05/06 Javascript
浅谈Web Storage API的使用
2021/06/23 Javascript
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
Python实现对齐打印 format函数的用法
2022/04/28 Python