1. JSON对象有两个方法:stringify() parse()。在简单的情况下,这两个方法分别可以将JavaScript序列化为 JSON 字符串,以及将 JSON 解析为原生 JavaScript 值。
    1. let book = {
    2. title: "Professional JavaScript",
    3. authors: [
    4. "Nicholas C. Zakas",
    5. "Matt Frisbie"
    6. ],
    7. edition: 4,
    8. year: 2017
    9. };
    10. let jsonText = JSON.stringify(book);

    这个例子使用 JSON.stringify() 把一个 JavaScript 对象序列化为一个 JSON 字符串,保存在变量jsonText中。默认情况下,JSON.stringify() 会输出不包含空格或缩进的JSON字符串,因此jsonText的值是这样的:

    1. {"title":"Professional JavaScript","authors":["Nicholas C. Zakas","Matt Frisbie"], "edition":4,"year":2017}

    在序列化 JavaScript 对象时,所有函数和原型成员都会有意的在结果中省略。此外,值为 undefined 的任何属性也会被跳过。最终得到的就是所有实例属性均为有效 JSON 数据类型的表示。

    JSON 字符串可以直接传给 JSON.parse(),然后得到相应的 JavaScript 值。比如,可以使用以下代码创建与 book 对象类似的新对象:

    1. let bookCopy = JSON.parse(jsonText);
    1. 注意,book bookCopy 是两个完全不同的对象,没有任何关系。但是它们拥有相同的属性和值。如果给 JSON.parse() 传入的 JSON 字符串无效,则会导致抛出错误。