1. 程式人生 > >物件 陣列 字串轉

物件 陣列 字串轉

在JS中將JSON的字串解析成JSON資料格式,一般有兩種方式:

1.一種為使用eval_r()函式。

2. 使用Function物件來進行返回解析。

使用eval函式來解析,並且使用jquery的each方法來遍歷

用jquery解析JSON資料的方法,作為jquery非同步請求的傳輸物件,jquery請求後返回的結果是json物件,這裡考慮的都是伺服器 返回JSON形式的字串的形式,對於利用JSONObject等外掛封裝的JSON物件,與此亦是大同小異,這裡不再做說明。
這裡首先給出JSON字串集,字串集如下:

程式碼如下:
var data="
{
root:
[
{name:'1',value:'0'},
{name:'6101',value:'北京市'},
{name:'6102',value:'天津市'},
{name:'6103',value:'上海市'},
{name:'6104',value:'重慶市'},
{name:'6105',value:'渭南市'},
{name:'6106',value:'延安市'},
{name:'6107',value:'漢中市'},
{name:'6108',value:'榆林市'},
{name:'6109',value:'安康市'},
{name:'6110',value:'商洛市'}
]
}";
這裡以jquery非同步獲取的資料型別——json物件和字串為依據,分別介紹兩種方式獲取到的結果處理方式。

1.對於伺服器返回的JSON字串,如果jquery非同步請求沒做型別說明,或者以字串方式接受,那麼需要做一次物件化處理,方式不是太麻煩,就是將該字串放於eval_r()中執行一次。這種方式也適合以普通javascipt方式獲取json物件,以下舉例說明:

var dataObj=eval_r("("+data+")");//轉換為json物件

2.對於伺服器返回的JSON字串,如果jquery非同步請求將type(一般為這個配置屬性)設為“json”,或者利 用$.getJSON()方法獲得伺服器返回,那麼就不需要eval()方法了,因為這時候得到的結果已經是json物件了,只需直接呼叫該物件即可,