1. 程式人生 > >後臺返回的map轉成json的形式

後臺返回的map轉成json的形式

// 在前後端互動中,後臺可能由於某種原因,會返回map型別的資料,因此,前端的開發中,需要解析成標準的JSON的格式來使用;

<script>
  //字串和陣列的方法實現
var obj = '{name=zhangsan,age = 16,  job =IT}';
function formatJSON(str){
var newObj={};
str= str.substring(1,str.length-1);
var reg = /\s+/g;//去除所有空格
str = str.replace(reg,"");
proData = str.split(",");//將字串轉成陣列  name=liqin,  age = 12,
for(var i=0,len=proData.length;i<len;i++){// name=liqin, 
var key = proData[i].split("=")[0];//鍵名
var val = proData[i].split("=")[1];//鍵值
newObj[key] = val
}
return newObj;
}


console.log(formatJSON(obj))
var getjson = formatJSON(obj)


   for(var attr in getjson){
    console.log(getjson[attr])
    }




 //正則的實現
 // 後臺返回的map物件,轉成json格式
 var obj2 = '{name=wangwu,age=16,job=IT}';
 function formatJsonMap(obj){
 //分析:將字串中的{}去除,變成基本的字串,然後使用正則的方法將map轉成標準的json個數 \s匹配任何不可見字元,包括空格、製表符、換頁符等等。等價於[ \f\n\r\t\v]
 var json={};
 var newObj= obj.substring(1,obj.length-1);
 var reg = /([^,\s]+)=([^,\s]+)/g;//等號的兩邊是:非,\s的多個字元
 newObj.replace(reg,function(arg0,arg1,arg2){// arg1第一個分組,arg2第二個分組
 json[arg1] = arg2
 })
 return json;


 }
console.log(formatJsonMap(obj2))
</script>