Theme NexT works best with JavaScript enabled

ShunNien's Blog

不積跬步,無以致千里;不積小流,無以成江海。

0%

JSON.parse 介紹

Introduction

在網站的開發中,JSON 資料是很常見,所以 JSON 物件的轉換就會有所需要;

Conetent

此篇主要介紹把 JSON 字串轉換成 JavaScript 物件的方法 JSON.parse,以下引用 MDN JSON.parse

JSON.parse() 方法把會把一個JSON字串轉換成 JavaScript的數值或是物件。另外也可選擇使用reviver函數讓這些數值或是物件在被回傳之前做轉換。

語法

1
JSON.parse(text[, reviver])

參數

  • text
    要解析成 JSON 的字串。針對 JSON 語法的描述,請參見 JSON 物件。
  • reviver 選擇性
    為選擇性的參數,用來描述JSON字串中的值該如何被解析並回傳的函式(function)

回傳值

從給定的 JSON text 回傳對應的 Object。

Throws

如果解析的字串不是合法的JSON格式會丟出一個 SyntaxError 例外
引用自 MDN JSON.parse

此處針對使用 reviver 選擇性參數來作範例,例如以下的 JSON 字串,birthday 的資料可以直接在 parse 轉換好在輸出

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
let jstr = '{"name":"allen","gender":"male","birthday":"1496905033982"}';

// 直接轉換
JSON.parse(jstr);
// 會輸出
// Object {name: "allen", gender: "male", birthday: "1496905033982"}


// 使用 reviver 參數
// key: JSON 字串中的 key (例如:name、gender...)
// value: JSON 字串中的 value (例如:allen、male...)
JSON.parse(jstr,function(key,value){
if(key === "birthday"){
let options = {
year: 'numeric',
month: '2-digit',
day: '2-digit',
hour: '2-digit',
minute: '2-digit'
};
return new Date(+value).toLocaleString(undefined,options);
}
return value;
});
// 將會輸出
// Object {name: "allen", gender: "male", birthday: "2017-06-08 14:57"}

Reference

歡迎關注我的其它發布渠道