JSON

 

一、JSON 的全名是 JavaScript Object Notation

JSON 語法是 JavaScript Object 的子集。

 

二、JavaScript Object 跟 JavaScript Object Notation 的差異

1、表示一個 JavaScript Object 的寫法為

{ name:"John" }

2、表示一個 JavaScript Object Notation 的寫法為

{ "name":"John" }

 

三、Valid Data Types

JSON 的值可為下列型態

1、string

2、number

3、object (JSON object)

4、array

5、boolean

6、null

而 JavaScript Object 的值除了可為上述六種型態之外,另外可允許下列三種型態

7、function

8、date

9、undefined

 

四、JSON.stringify()

語法為 JSON.stringify(value[, replacer[, space]])

var obj = { name: "John", age: 30, city: "New York" };
var myJSON = JSON.stringify(obj);
myJSON;

說明:

1 、JSON.stringify 方法常用來傳送資料至 server,負責將 javascript object 轉成 JSON 格式字串。

2、JSON.stringify 方法不能對 function、undefinded 做轉換(會直接省略)。

var obj = { name: "John", age: function () { return 30; }, city: undefined };
var myJSON = JSON.stringify(obj);
myJSON;

3、JSON.stringify(value[, replacer]) 的用法

var obj = { name: "John", age: 30, city: "New York" };
var myJSON = JSON.stringify(obj, function (key, value) {
    if (key === "name") {
        return "tom";
    }
    else if (key === "age") {
        return 40;
    }
    else {
        return value;
    }
});
myJSON;

4、JSON.stringify(value[, replacer[, space]]) 的用法

var obj = { name: "John", age: 30, city: "New York" };
var myJSON = JSON.stringify(obj, null, "abc");
myJSON;

 

五、JSON.parse()

語法為 JSON.parse(text[, reviver])

var data = '{ "name":"John", "age":30, "city":"New York"}';
var obj = JSON.parse(data);
obj;

說明:

1、JSON.parse 方法常用來接收 server pass 過來的資料,負責將 string 轉成 javascript object。

2、JSON.parse(text[, reviver]) 的用法

var text = '{ "name":"John", "age":30, "city":"New York"}';
var obj = JSON.parse(text, function (key, value) {
    if (key === "name") {
        return "Tom";
    } else {
        return value;
    }
});
obj;

 

參考資料:

JSON.stringify()

JSON.parse()

Introducing JSON