jQuery.parseJSON()


jQuery.parseJSON( json )返回值: 字符串数字对象数组布尔值版本弃用: 3.0

描述: 接受一个格式良好的 JSON 字符串并返回生成的 JavaScript 值。

从 jQuery 3.0 开始,$.parseJSON 已被弃用。要解析 JSON 字符串,请改用原生 JSON.parse 方法。

传递格式错误的 JSON 字符串会导致抛出 JavaScript 异常。例如,以下都是无效的 JSON 字符串

  • "{test: 1}" (test 没有用双引号括起来)。
  • "{'test': 1}" ('test' 使用单引号而不是双引号)。
  • "'test'" ('test' 使用单引号而不是双引号)。
  • ".1" (数字必须以数字开头;"0.1" 是有效的)。
  • "undefined" (undefined 无法在 JSON 字符串中表示;但是,null 可以)。
  • "NaN" (NaN 在 JSON 字符串中无法表示;Infinity 的直接表示也不允许)。

JSON 标准不允许使用“控制字符”,例如制表符或换行符。例如,$.parseJSON( '{ "testing":"1\t2\n3" }' ) 在大多数实现中会抛出错误,因为 JavaScript 解析器将字符串中的制表符和换行符转义转换为字面上的制表符和换行符;将反斜杠加倍,例如 "1\\t2\\n3",会产生预期结果。当从服务器端语言(如 PHP)将 JSON 注入 JavaScript 文件时,经常会遇到此问题。

如果浏览器提供了 JSON.parse 的原生实现,jQuery 将使用它来解析字符串。有关 JSON 格式的详细信息,请参见 https://json.org/

在 jQuery 1.9 之前,$.parseJSON 在传递空字符串、nullundefined 时会返回 null 而不是抛出错误,即使这些不是有效的 JSON。

示例

解析 JSON 字符串。

1
2
var obj = jQuery.parseJSON( '{ "name": "John" }' );
alert( obj.name === "John" );