早期的JSON解析器基本上就是使用JavaScript的eval()函數。由於JSON是JavaScript語法的自己,因此eval()函數可以解析、解釋並傳回JavaScript的物件和陣列。
ECMAScript 5對解析JSON的行為進行了規範,定義了全域物件JSON。
JSON物件有兩個方法:stringify()和parse()。在最簡單的情況下,這兩個方法分別用來把JavaScript物件序列化為JSON字串和把JSON字串解析為原生JavaScript。例如:
新建一個HTML:程式碼如下:
程式碼如下:
};
var jsonBook=JSON.stringify(book);
var objectBook=JSON.parse(jsonBook);
複製程式碼
程式碼如下:
{"title":"JavaScript高級程式設計","authors":["Nicholas C. Zakas"],"edition":3,"year":2011} 在序列化JavaScript物件時,所有函數及原型成員都會被有意忽略,不體現在結果中。此外,值為undefined的任何屬性也會被跳過。結果中最終都是值為有效JSON資料型別的實例屬性。 注意,雖然book與objectBook具有相同的屬性,但它們是兩個獨立的、沒有任何關係的物件。如果傳給JSON.parse()的字串不是有效的JSON,則該方法會拋出錯誤。