jQuery.parseJSON()

jQuery.parseJSON( json )返回类型:String or Number or Object or Array or Booleanversion deprecated: 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格式的细节,请参阅http://json.org/

在jQuery 1.9以前,如果$.parseJSON被传入一个空字符串、传入nullundefined,就返回null而不是抛出错误,甚至哪怕传入无效的JSON,也是返回null

示例:

解析一个JSON字符串。

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