1. 程式人生 > >JSON物件和字串之間的相互轉換 – JSON.parse() 和 JSON.stringify()

JSON物件和字串之間的相互轉換 – JSON.parse() 和 JSON.stringify()

所有現代瀏覽器都支援 JSON 物件,有兩個非常有用的方法來處理 JSON 格式的內容:

  • JSON.parse(string) :接受一個 JSON 字串並將其轉換成一個 JavaScript 物件。
  • JSON.stringify(obj) :接受一個 JavaScript 物件並將其轉換為一個 JSON 字串。

比如我有兩個變數,我要將a轉換成字串,將b轉換成JSON物件:

js 程式碼:
  1. var a={"name":"tom","sex":"男","age":"24"};
  2. var b='{"name":"Mike","sex":"女","age":"29"}';

在Firefox,chrome,opera,safari,ie9,ie8等高階瀏覽器直接可以用JSON物件的stringify()和parse()方法。

JSON.stringify(obj)將JSON轉為字串。

JSON.parse(string)將字串轉為JSON格式;

上面的轉換可以這麼寫:

js 程式碼:
  1. var a={"name":"tom","sex":"男","age":"24"};
  2. var b='{"name":"Mike","sex":"女","age":"29"}';
  3. var aToStr=JSON.stringify(a);
  4. var bToObj=JSON.parse(b);
  5. console.log(typeof(aToStr));//string
  6. console.log(typeof(bToObj));//object

儘管這些方法通常用在物件上,但它們也可以在陣列上使用:

JavaScript程式碼:
  1. const myArr =['bacon','letuce','tomatoes'];
  2. const myArrStr = JSON.stringify(myArr);
  3. console.log(myArrStr);
  4. // "["bacon","letuce","tomatoes"]"
  5. console.log(JSON.parse(myArrStr));
  6. // ["bacon","letuce","tomatoes"]

ie8(相容模式),ie7和ie6沒有JSON物件,不過http://www.json.org/提供了一個json.js,這樣ie8(相容模式),ie7和ie6就可以支援JSON物件以及其stringify()和parse()方法;你可以在

https://github.com/douglascrockford/JSON-js上獲取到這個js,一般現在用json2.js。

ie8(相容模式),ie7和ie6可以使用eval()將字串轉為JSON物件,

js 程式碼:
  1. var c='{"name":"Mike","sex":"女","age":"29"}';
  2. var cToObj=eval("("+c+")");
  3. console.log(typeof(cToObj));

jQuery中也有將字串轉為JSON格式的方法jQuery.parseJSON( json ),接受一個標準格式的 JSON 字串,並返回解析後的 JavaScript (JSON)物件。當然如果有興趣可以自己封裝一個jQuery擴充套件,jQuery.stringifyJSON(obj)將JSON轉為字串。