读书人

string与数组跟Json互转

发布时间: 2013-04-05 10:24:33 作者: rapoo

string与数组和Json互转

数组和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+'}';}};

?

// 把字符串转为为jsonfunction 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中的数据转换为stringfunction changeJsonToString(json) {if (json == undefined || json == null) {return "";} else {return Ext.encode(json);}};// 把字符串转为为jsonfunction changeStringToJson(str) {if (str == undefined || str == null || str == "") {return null;} else {return Ext.decode(str, true)}return null;};

?

读书人网 >JavaScript

热点推荐