Javascript json object 與string 相互轉(zhuǎn)換的簡單實現(xiàn)
Javascript json object 與string 相互轉(zhuǎn)換的簡單實現(xiàn)
function obj2str(o){
var r = [];
if(typeof o == "string" || o == null) {
return o;
}
if(typeof o == "object"){
if(!o.sort){
r[0]="{"
for(var i in o){
r[r.length]=i;
r[r.length]=":";
r[r.length]=obj2str(o[i]);
r[r.length]=",";
}
r[r.length-1]="}"
}else{
r[0]="["
for(var i =0;i<o.length;i++){
r[r.length]=obj2str(o[i]);
r[r.length]=",";
}
r[r.length-1]="]"
}
return r.join("");
}
return o.toString();
}
string 轉(zhuǎn) object
function taoRan(){
var str='{"result": [["提現(xiàn)", "219"], ["提現(xiàn)銀行", "121"], ["退款", "272"], ["提現(xiàn)失敗", "16"], ["團購", "15"], ["淘寶", "412"],["臺灣", "58"], ["提現(xiàn)限額", "16"], ["提現(xiàn)時間", "81"], ["臺灣認證", "26"]]}';
alert(strToObj(str).result[2]);
}
function strToObj(json){
return eval("("+json+")");
}
非常好用的JsonToString方法
//'
Jsontostring代碼
function JsonToString(o) {
var arr = [];
var fmt = function(s) {
if (typeof s == 'object' && s != null) return JsonToStr(s);
return /^(string|number)$/.test(typeof s) ? "'" + s + "'" : s;
}
for (var i in o)
arr.push("'" + i + "':" + fmt(o[i]));
return '{' + arr.join(',') + '}';
}
我反正用的很爽,哈哈
另外: 如果不想json中的數(shù)字也被字符串化. 可以改造: return /^(string|number)$/.test(typeof s) ? '"' + s + '"' : s; 為 : return /^(string)$/.test(typeof s) ? '"' + s + '"' : s; (其實就是把number類型的忽略掉而已)
function O2String(O) {
//return JSON.stringify(jsonobj);
var S = [];
var J = "";
if (Object.prototype.toString.apply(O) === '[object Array]') {
for (var i = 0; i < O.length; i++)
S.push(O2String(O[i]));
J = '[' + S.join(',') + ']';
}
else if (Object.prototype.toString.apply(O) === '[object Date]') {
J = "new Date(" + O.getTime() + ")";
}
else if (Object.prototype.toString.apply(O) === '[object RegExp]' || Object.prototype.toString.apply(O) === '[object Function]') {
J = O.toString();
}
else if (Object.prototype.toString.apply(O) === '[object Object]') {
for (var i in O) {
O[i] = typeof (O[i]) == 'string' ? '"' + O[i] + '"' : (typeof (O[i]) === 'object' ? O2String(O[i]) : O[i]);
S.push('"' + i + '":' + O[i]);
}
J = '{' + S.join(',') + '}';
}
return J;
};
JSON.stringify(jsonobj)
JSON.stringify(jsonobj),本來是最簡便的方法,可是存在瀏覽器兼容問題(僅適用于IE8+,Chrome 1+,F(xiàn)F 3+)
以上就是小編為大家?guī)淼腏avascript json object 與string 相互轉(zhuǎn)換的簡單實現(xiàn)的全部內(nèi)容了,希望對大家有所幫助,多多支持腳本之家~
相關(guān)文章
window.event快達到全瀏覽器支持了,以后使用就方便了
在Tangram群里討論到<a href="#" onclick="baidu.event.preventDefault(event);">的寫法時,以為標準瀏覽器只能用arguments[0]來獲取到event,結(jié)果nodiseal同學說已經(jīng)可以這么用了,于是做了以下測試2011-11-11
詳解微信小程序?qū)崿F(xiàn)仿微信聊天界面(各種細節(jié)處理)
這篇文章主要介紹了詳解微信小程序?qū)崿F(xiàn)仿微信聊天界面(各種細節(jié)處理),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-02-02
詳解Webpack實戰(zhàn)之構(gòu)建 Electron 應(yīng)用
本篇文章主要介紹了Webpack實戰(zhàn)之構(gòu)建 Electron 應(yīng)用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-12-12
uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導(dǎo)航功能的全過程
最近項目需要在APP內(nèi)實現(xiàn)路線規(guī)劃導(dǎo)航功能,直接打開高德地圖進行導(dǎo)航,下面這篇文章主要給大家介紹了關(guān)于利用uniapp開發(fā)安卓App實現(xiàn)高德地圖路線規(guī)劃導(dǎo)航功能的相關(guān)資料,需要的朋友可以參考下2022-08-08
js實現(xiàn)用于建立新的一行且增加的四個文本框為空的且被禁用
js實現(xiàn)用于建立新的一行且增加的四個文本框為空的且被禁用...2007-04-04
js插件設(shè)置innerHTML時在IE8下提示“未知運行時錯誤”解決方法
這篇文章主要介紹了js插件設(shè)置innerHTML時在IE8下提示“未知運行時錯誤”解決方法,較為詳細的分析了錯誤的原因及對應(yīng)的解決方法,需要的朋友可以參考下2015-04-04
Electron autoUpdater實現(xiàn)Windows安裝包自動更新的方法
這篇文章主要介紹了Electron autoUpdater實現(xiàn)Windows安裝包自動更新的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-12-12

