1. 程式人生 > >json字串轉json物件的四種方式及對json字串的處理方式

json字串轉json物件的四種方式及對json字串的處理方式

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');