JSON 对象有两个方法:

  • stringify()
  • parse()

在简单的情况下,这两个方法分别可以将 JavaScript 序列化为 JSON 字符串,以及将 JSON 解析为原生 JavaScript 值。

  1. let book = {
  2. title: "Professional JavaScript",
  3. authors: [
  4. "yuaanmou",
  5. "Matt Frisbie"
  6. ],
  7. edition: 4,
  8. year: 2020
  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 对象类似的新对象:
    let bookCopy = JSON.parse(jsonText);
    
    注意,book 和 bookCopy 是两个完全不同的对象,没有任何关系。但是它们拥有相同的属性和值。 如果给 JSON.parse()传入的 JSON 字符串无效,则会导致抛出错误。

太长不看型

简单来说由 JSON.stringify()将一个对象转化为字符串形式
JSON.parse()将转化的字符串再转回来