数组和Json转字符串好处理,但是如果字符串转数组或Json时,使用eval时,如果数组中还包含[],或者Json中还包含{}时,总是报错。才疏学浅,错误不会解决,只能自己写方法实现相关转换
// 把store中数据,转换为字符串 // 由于[]再套用[]时使用eval出错,所以使用标识符;x?作为分隔符,其中level作为第几级的参数 function changeArrayToString(array, level) { var str = ""; for (var i = 0; i < array.length; i++) { var jsonData = array[i]; str += bmJsonToString(jsonData) + ';' + level + '?'; } if (str != "") { str = str.substring(0, str.length - 3); } return str; };
?
// 把字符串,转换为store数组 function changeStringToArray(str, level) { if (str == undefined || str == null || str == "") { return null; } else { var array = str.split(";" + level + "?"); var conditionArray = new Array(); for (var i = 0; i < array.length; i++) { var obj = changeStringToJson(array[i], level); conditionArray.push(obj); } return conditionArray; } };
?
//把json中的数据转换为string //由于{}中再套{}时,使用eval出错,所以使用标志符|x!作为分隔符,其中level作为第几级的参数 function changeJsonToString(json, level){ if(json == undefined || json == null){ return ""; }else{ var str = ""; for (var k in json) { str += '"'+k+'":'; str += '"'+json[k]+'"|'+level+"!" } str = str.substring(0,str.length-3); return '{'+str+'}'; } };
?
// 把字符串转为为json function changeStringToJson(str, level) { if (str == undefined || str == null || str == "") { return null; } else { if (str.length > 2) { var json = {}; str = str.substring(1, str.length - 1); var array = str.split('|' + level + '!'); for (var i = 0; i < array.length; i++) { var info = array[i].split(':'); if (info.length == 2) { var key = info[0].substring(1,info[0].length-1); var value = info[1].substring(1,info[1].length-1); json[key] = value; } } return json; } } return null; };
?真的是学艺不精呀,既然使用Ext为什么把Ext的一些方法给忘了
function changeArrayToString(array) { var str = ""; for (var i = 0; i < array.length; i++) { var jsonData = array[i]; str += changeJsonToString(jsonData) + ',';//';' + level + '?'; } if (str != "") { str = "["+str.substring(0, str.length - 1)+"]" } return str; }; // 把字符串,转换为store数组 function changeStringToArray(str) { if (str == undefined || str == null || str == "") { return null; } else { return Ext.decode(str); } }; // 把json中的数据转换为string function changeJsonToString(json) { if (json == undefined || json == null) { return ""; } else { return Ext.encode(json); } }; // 把字符串转为为json function changeStringToJson(str) { if (str == undefined || str == null || str == "") { return null; } else { return Ext.decode(str, true) } return null; };
?