JSON.parse()


JSON.parse() 方法

JSON.parse() 方法用于解析 JSON 格式的字符串,将其转换为 JavaScript 对象。

语法

JSON.parse(text[, reviver])

参数

  • text:必选参数,一个符合 JSON 语法的字符串。

  • reviver:可选参数,如果是一个函数,则可以对返回值进行处理。

返回值

JSON.parse() 方法返回一个 JavaScript 对象。如果解析失败,将会抛出异常。

示例

假设我们有一个 JSON 格式的字符串:

const jsonStr = '{"name": "Alice","age": 18}';

可以调用 JSON.parse() 方法将其转换为 JavaScript 对象:

const jsonObj = JSON.parse(jsonStr);

此时,我们可以通过获取键来获取对象的值:

console.log(jsonObj.name); // 输出 "Alice"
console.log(jsonObj.age); // 输出 18

转换格式

JSON.parse() 方法可以将 JSON 格式的字符串转换为 JavaScript 对象,可以看做一个格式转换的过程。

例如,我们可以将 JavaScript 对象转换为 JSON 格式的字符串:

const obj = {name: "Bob", age: 20};
const jsonStr = JSON.stringify(obj);
console.log(jsonStr); // 输出 {"name":"Bob","age":20}

错误处理

JSON.parse() 方法解析失败时,将会抛出一个异常。因此在使用该方法时需要进行错误处理。

例如,我们可以使用 try…catch 语句来处理异常:

try {
  const jsonObj = JSON.parse('{"invalid JSON}');
} catch (e) {
  console.log("JSON.parse error: " + e.message);
}

reviver 参数

JSON.parse() 方法的第二个参数 reviver 是可选参数,它是一个函数,可以对返回值进行处理。

例如,我们可以对返回值进行一些修改:

const jsonObj = JSON.parse('{"name": "Charlie","age": 30}', function (key, value) {
  if (key === 'age') {
    return value + 10;
  }
  return value;
});

console.log(jsonObj.age); // 输出 40

上面的代码中,我们对 age 的值进行了修改。

总结

JSON.parse() 方法将 JSON 格式的字符串转换为 JavaScript 对象。该方法使用简单,但需要注意解析失败时会抛出异常,因此需要进行错误处理。reviver 参数是可选的,可以对返回值进行处理。