json字串轉json物件的四種方式及對json字串的處理方式
阿新 • • 發佈:2018-11-01
1. 將json字串轉化為json物件
a. 方案一:jquery自帶的$.parseJSON函式
<script>
var jsonstr="{\"id\":\"1\",\"name\":\"jack\"}";
var obj=$.parseJSON(jsonstr);
</script>
說明:使用該方法對json字串的要求比較高,屬性名和屬性值必須使用雙引號,使用單引號或者不是用引號都會出錯
b. 方案二:js自帶的eval函式
<script language="javascript">
var jsonstr1="{\"id\":\"1\",\"name\":\"aijquery\"}" ;
var jsonstr1="{'id':1,'name':'aijquery'}";
var jsonstr1="{id:1,name:'aijquery'}";
//上面這三種寫法,不管是用單引號包裹,還是不包裹,都能用eval來轉換為json物件
var obj=eval('('+jsonstr1+')');
alert(obj.id);
</script>
說明:首先,最外層的整體字串還有“”,其次,在使用eval轉換的時候需要新增一對()使用,最後:eval最好用來轉換簡單的字串,如果含有表示式,或者物件之類的複雜json串,不建議使用eval();
c. 方案三:使用瀏覽器自帶的JSON.parse()
<script language="javascript">
var jsonstr1="{\"id\":1,\"name\":\"aijquery\"}";
var obj=JSON.parse(jsonstr1);
console.log(obj);
alert(obj.id);
</script>
d. 方案四:使用json官方的方法:parse();使用parse()轉換為json物件,使用 stingify()將物件轉換為字串;
參考連結:jquery裡把字串轉為json物件的四種方法,及每種方法的優缺點
2. 將屬性不帶有引號的字串轉換為json物件
如果存在一個字串:G=“[{name=jack,sex=boy } , { name=julty,sex=gril }….]”,將該字串轉換為物件陣列
//第一步:將 = 轉換為 :,加/g的目的是為了轉換整個字串中的等號,不加/g只會轉換第一個
G = G.replace(/\=/g , ":");
//第二步:去掉字串中的所有空格
G = G.replace(/\s*/g,"");
//第三步:為屬性和屬性值新增引號。轉換為json串
G = G.replace(/\{/g, "{\"");
G = G.replace(/\:/g, "\":\"");
G = G.replace(/\,/g, "\",\"");
G = G.replace(/\}/g, "\"}");
//第四步:去掉不合理的引號
G = G.replace(/\}","{/g, "},{");
//第五步:將該字串轉換為json陣列
var arr = $.parseJSON(G);
3. 替換字元
關於替換字元,最常用的為replace()函式
語法:str.replace(被替換的字串,替換為字串)
var str = "Hello World"
//使用china替換字串中的world
str = str.replace(/World/ , 'China');
//如果進行全域性替換需要新增 /g , 在不新增 /g的情況下只會替換匹配到的第一個字元
str = str.replace(/World/g , 'China');