コードのこの部分:
var test = ['thing1','thing2','thing3'];
有効なJSON式を含む文字列の代わりに配列を作成します。1.8.3で動作するように見えた理由は、当時は次parseJSON
のようになっていたためです。
function( data ) {
if ( !data || typeof data !== "string") {
return null;
}
// ...
}
ご覧のとおり、最初の引数として配列を渡すと、null
;が返されます。例外はスローされません。
次に、関数は次を返しますtrue
。
parseJSON: function is_JSON( test ) {
try { var c = $.parseJSON( test );
} catch (e) { return false; }
// c === null
return true;
}
1.9以降、parseJSON
次のようになります。
parseJSON: function( data ) {
// Attempt to parse using the native JSON parser first
if ( window.JSON && window.JSON.parse ) {
return window.JSON.parse( data );
}
if ( data === null ) {
return data;
}
if ( data === null ) {
return data;
}
// etc.
window.JSON.parse()
渡されたパラメーターが有効なJSON式でない場合は、例外がスローされます。
有効な式は次のとおりです。
'["thing1","thing2","thing3"]'
テストする:
> JSON.parse('["thing1","thing2","thing3"]')
["thing1", "thing2", "thing3"]