json和cookie兼容以前的

‘json‘: function(data) {
try {
if (typeof data === "string") {
if (typeof JSON != ‘undefined‘ && JSON.parse) {
return JSON.parse(data);
}
return eval("(" + data + ")");
}else{
if (typeof JSON != ‘undefined‘ && JSON.stringify) {
return JSON.stringify(data);
}else{
return LETV.json(data);
}
}
return {};
} catch (ex) {
}
},

******************

window.LETV || (window.LETV = {});
var Cookie = {
set: function(name, value, opt){
opt || (opt = {});
var t = new Date(), exp = opt.exp;
if(typeof exp===‘number‘){
t.setTime(t.getTime() + exp*3600000); //60m * 60s * 1000ms
}else if(exp===‘forever‘){
t.setFullYear(t.getFullYear()+50); //专业种植cookie 50年
}else if(value===null){ //删除cookie
value = ‘‘;
t.setTime(t.getTime() - 3600000);
}else if(exp instanceof Date){ //传的是一个时间对象
t = exp;
}else{
t = ‘‘;
}
var curdomain = location.host.indexOf(‘.letv.com‘) >= 0 ? ‘letv.com‘ : ‘le.com‘;
document.cookie = name+‘=‘+encodeURIComponent(value)+(t && ‘; expires=‘+t.toUTCString())+
‘; domain=‘+(opt.domain || curdomain)+‘; path=‘+(opt.path || ‘/‘)+(opt.secure ? ‘; secure‘ : ‘‘);
},

get: function(name){
name += ‘=‘;
var cookies = (document.cookie || ‘‘).split(‘;‘),
cookie,
nameLength = name.length,
i = cookies.length;
while(i--){
cookie = cookies[i].replace(/^\s+/,‘‘);
if(cookie.slice(0,nameLength)===name){
return decodeURIComponent(cookie.slice(nameLength)).replace(/\s+$/,‘‘);
}
}
return ‘‘;
}
};
var letvMethod = {
using:function() {
var a = arguments, o = this, i = 0, j, d, arg, isExist;
arg = a[0], isExist = a[1];
if (arg && arg.indexOf(‘.‘)) {
d = arg.split(‘.‘);
for (j = (d[0] == ‘LETV‘) ? 1 : 0; j < d.length; j++) {
if(!o[d[j]] && isExist) return null;
o[d[j]] = o[d[j]] || {};
o = o[d[j]];
}
} else {
o[arg] = o[arg] || {};
}
return o;
},
/*--
用新Cookie方法,但是兼容老的东西
-ver 2014-04-22
*/
cookie:function(name, value, options) {
if(typeof value===‘undefined‘){
return Cookie.get(name);
}
if(options){
options.exp = typeof options.expires===‘number‘ ? options.expires * 24 :
options.expires; //原来的cookie是按天算的
}
Cookie.set(name, value, options);
},

/**
*JSON序列化,如果传入的是字符串则反序列化为对象;若传入的是对象则反序列化为字符串
*/
json:function(value){
if(typeof value==="string"){
return this.jsontoObject(value);
}else{
return this.jsontoJSON(value);
}
},
jsontoJSON:function(object){
var type = typeof object;
if (‘object‘ == type) {
if (Array == object.constructor) type = ‘array‘;
else if (RegExp == object.constructor) type = ‘regexp‘;
else type = ‘object‘;
}
switch (type) {
case ‘undefined‘:
case ‘unknown‘:
return;
break;
case ‘function‘:
case ‘boolean‘:
case ‘regexp‘:
return object.toString();
break;
case ‘number‘:
return isFinite(object) ? object.toString() : ‘null‘;
break;
case ‘string‘:
return ‘"‘ + object.replace(/(\\|\")/g, "\\$1").replace(/\n|\r|\t/g, function() {
var a = arguments[0];
return (a == ‘\n‘) ? ‘\\n‘: (a == ‘\r‘) ? ‘\\r‘: (a == ‘\t‘) ? ‘\\t‘: ""
}) + ‘"‘;
break;
case ‘object‘:
if (object === null)
return ‘null‘;
var results = [];
for (var property in object) {
var value = this.jsontoJSON(object[property]);
if (value !== undefined)
results.push(this.jsontoJSON(property) + ‘:‘ + value);
}
return ‘{‘ + results.join(‘,‘) + ‘}‘;
break;
case ‘array‘:
var results = [];
for (var i = 0; i < object.length; i++) {
var value = this.jsontoJSON(object[i]);
if (value !== undefined)
results.push(value);
}
return ‘[‘ + results.join(‘,‘) + ‘]‘;
break;
}
},

jsontoObject:function(strjson){
return eval("(" + strjson + ")");
}
};
var addFunToLETV = function(functionName,func){
if(typeof(func) == ‘function‘)
LETV[functionName] = func;
};
for(var m in letvMethod){
if(typeof(LETV[m]) == ‘undefined‘){
addFunToLETV(m,letvMethod[m]);
}
}

时间: 2024-12-15 06:07:47

json和cookie兼容以前的的相关文章

js : json和 cookie 的简单操作

使用 cookie,可以记录用户的最近的浏览历史 <!DOCTYPE HTML> <html lang="zh-cn"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> <script src="./jquery.min.js"></script> &l

jQuery基于json与cookie实现购物车的方法

/** * 添加商品及数量到购物车cookie中,返回当前商品在cookie中的总数 */ function AddToShoppingCar(id, num, type) { var _num = 1; if (num != undefined){ _num = num; } if (type == undefined){ alert("请设置产品种类"); return false; } var totalNum = _num; //总数默认为传入参数 var cookieSet

IE和Firefox下的Cookie兼容问题

这个帖是继于"基于二级域名下Cookie共享的SSO"后续发现的问题,测试结果是这样的:用Firefox可以登录,使用IE后,部分可以登录,部分不可以登录.最初是怀疑IE的Cookie功能没有打开引起的,测试到最后这个原因也排除了. 既然是通过Cookie实现SSO,那认证必然是保存在Cookie中,Cookie文件就是保存在本地的缓 存目录下(firefox下的Cookie是加密的,查不到Cookie文件),但是奇怪的是IE登录后,缓存目录下根本没有发现生成的Cookie文 件,这就

webview写cookie 兼容2.3.5系统

CookieSyncManager.createInstance(this); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.setAcceptCookie(true); for (int i = 0; i < cookieArray.length; i++) {  // cookieArray是多个cookie的数组变量 cookieManager.setCookie(mCurrentURL, 

php 如何把中文写入json中 当json文件中还显示的是中文

/*** * 更新版本 */ function showupversionsub(){ #接受post 过来的数据 $app_type=$_POST['aap_type']; if($app_type=='android'||$app_type=='ios'||$app_type=='windows'){ #组成数组 $arr=array( mainVer=>$_POST['mainVer']==null? '':$_POST['mainVer'], upVer=>$_POST['upVer'

ASP.NET与ASP.NET Core用户验证Cookie并存解决方案

在你将现有的用户登录(Sign In)站点从ASP.NET迁移至ASP.NET Core时,你将面临这样一个问题——如何让ASP.NET与ASP.NET Core用户验证Cookie并存,让ASP.NET应用与ASP.NET Core应用分别使用各自的Cookie?因为ASP.NET用的是FormsAuthentication,ASP.NET Core用的是claims-based authentication,而且它们的加密算法不一样. 我们采取的解决方法是在ASP.NET Core中登录成功

js操作cookie的一些注意项

 这两天做购物车逻辑.依照通常的做法,把预购信息存放在cookie里,结果发生了非常多不可理喻的事情,完整的证明了我对cookie的无知. . . 这么多年.非常少用cookie,由于认为它不安全.但有些情况使用cookie会大大简化逻辑和系统负担,比方登录验证和购物车,仅仅要设计和处理得好,也不会有安全问题. 正是由于用的少.偶尔用到,也仅仅是接触到皮毛,因此,对cookie的理解和掌握就很有限,一些无知的地方,这次就暴露无遗了.. .. 以下把遇到问题总结一下,给大家一些參考吧,不一定是

JSON对象和字符串之间的相互转换

比如有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex":"男","age":"24"}; var b='{"name":"Mike","sex":"女","age":"29"}'; 在Firefox,chrom

Java:JSON解析工具-org.json

一.简介 org.json是Java常用的Json解析工具,主要提供JSONObject和JSONArray类,现在就各个类的使用解释如下. 二.准备 1.在使用org.json之前,我们应该先从该网址https://github.com/douglascrockford/JSON-java下载org.json源码,并将源码其加入到Eclipse中,即可调用. 2.查看相关的API文档,访问:https://github.com/douglascrockford/JSON-java. https