"./ajax/var/rquery",
"./core/init",
- "./ajax/parseJSON",
"./ajax/parseXML",
"./event/trigger",
"./deferred",
"text html": true,
// Evaluate text as a json expression
- "text json": jQuery.parseJSON,
+ "text json": JSON.parse,
// Parse text as xml
"text xml": jQuery.parseXML
+++ /dev/null
-define( [
- "../core"
-], function( jQuery ) {
-
-jQuery.parseJSON = JSON.parse;
-
-return jQuery.parseJSON;
-
-} );
// Only convert to a number if it doesn't change the string
+data + "" === data ? +data :
- rbrace.test( data ) ? jQuery.parseJSON( data ) :
+ rbrace.test( data ) ? JSON.parse( data ) :
data;
} catch ( e ) {}
}
} );
+jQuery.parseJSON = JSON.parse;
+
} );
},
success: function( text ) {
assert.strictEqual( typeof text, "string", "json wasn't auto-determined" );
- var json = jQuery.parseJSON( text );
+ var json = JSON.parse( text );
assert.ok( json.length >= 2, "Check length" );
assert.strictEqual( json[ 0 ][ "name" ], "John", "Check JSON: first, name" );
assert.strictEqual( json[ 0 ][ "age" ], 21, "Check JSON: first, age" );
}
QUnit.test( "core", function( assert ) {
- assert.expect( 28 );
+ assert.expect( 27 );
var elem = jQuery( "<div></div><span></span>" );
assert.strictEqual( jQuery.parseHTML( "<div></div><span></span>" ).length,
2, "jQuery.parseHTML" );
-
- assert.deepEqual( jQuery.parseJSON( "{\"a\": 2}" ), { a: 2 }, "jQuery.parseJON" );
} );
QUnit.test( "data", function( assert ) {
} );
}
-QUnit.test( "jQuery.parseJSON", function( assert ) {
- assert.expect( 20 );
-
- assert.strictEqual( jQuery.parseJSON( null ), null, "primitive null" );
- assert.strictEqual( jQuery.parseJSON( "0.88" ), 0.88, "Number" );
- assert.strictEqual(
- jQuery.parseJSON( "\" \\\" \\\\ \\/ \\b \\f \\n \\r \\t \\u007E \\u263a \"" ),
- " \" \\ / \b \f \n \r \t ~ \u263A ",
- "String escapes"
- );
- assert.deepEqual( jQuery.parseJSON( "{}" ), {}, "Empty object" );
- assert.deepEqual( jQuery.parseJSON( "{\"test\":1}" ), { "test": 1 }, "Plain object" );
- assert.deepEqual( jQuery.parseJSON( "[0]" ), [ 0 ], "Simple array" );
-
- assert.deepEqual(
- jQuery.parseJSON( "[ \"string\", -4.2, 2.7180e0, 3.14E-1, {}, [], true, false, null ]" ),
- [ "string", -4.2, 2.718, 0.314, {}, [], true, false, null ],
- "Array of all data types"
- );
- assert.deepEqual(
- jQuery.parseJSON( "{ \"string\": \"\", \"number\": 4.2e+1, \"object\": {}," +
- "\"array\": [[]], \"boolean\": [ true, false ], \"null\": null }" ),
- { string: "", number: 42, object: {}, array: [ [] ], "boolean": [ true, false ], "null": null },
- "Dictionary of all data types"
- );
-
- assert.deepEqual( jQuery.parseJSON( "\n{\"test\":1}\t" ), { "test": 1 },
- "Leading and trailing whitespace are ignored" );
-
- assert.throws( function() {
- jQuery.parseJSON();
- }, null, "Undefined raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "" );
- }, null, "Empty string raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "''" );
- }, null, "Single-quoted string raises an error" );
- /*
-
- // Broken on IE8
- assert.throws(function() {
- jQuery.parseJSON("\" \\a \"");
- }, null, "Invalid string escape raises an error" );
-
- // Broken on IE8, Safari 5.1 Windows
- assert.throws(function() {
- jQuery.parseJSON("\"\t\"");
- }, null, "Unescaped control character raises an error" );
-
- // Broken on IE8
- assert.throws(function() {
- jQuery.parseJSON(".123");
- }, null, "Number with no integer component raises an error" );
-
- */
- assert.throws( function() {
- var result = jQuery.parseJSON( "0101" );
-
- // Support: IE9+
- // Ensure base-10 interpretation on browsers that erroneously accept leading-zero numbers
- if ( result === 101 ) {
- throw new Error( "close enough" );
- }
- }, null, "Leading-zero number raises an error or is parsed as decimal" );
- assert.throws( function() {
- jQuery.parseJSON( "{a:1}" );
- }, null, "Unquoted property raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "{'a':1}" );
- }, null, "Single-quoted property raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "[,]" );
- }, null, "Array element elision raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "{},[]" );
- }, null, "Comma expression raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "[]\n,{}" );
- }, null, "Newline-containing comma expression raises an error" );
- assert.throws( function() {
- jQuery.parseJSON( "\"\"\n\"\"" );
- }, null, "Automatic semicolon insertion raises an error" );
-
- assert.strictEqual( jQuery.parseJSON( [ 0 ] ), 0, "Input cast to string" );
-} );
-
QUnit.test( "jQuery.parseXML", function( assert ) {
assert.expect( 8 );
var prop, i, l, metadata, elem,
obj, obj2, check, num, num2,
- parseJSON = jQuery.parseJSON,
+ parseJSON = JSON.parse,
div = jQuery( "<div>" ),
child = jQuery( "<div data-myobj='old data' data-ignored=\"DOM\" data-other='test' data-foo-42='boosh'></div>" ),
dummy = jQuery( "<div data-myobj='old data' data-ignored=\"DOM\" data-other='test' data-foo-42='boosh'></div>" );
// attribute parsing
i = 0;
- jQuery.parseJSON = function() {
+ JSON.parse = function() {
i++;
return parseJSON.apply( this, arguments );
};
assert.strictEqual( child.data( "string" ), "test", "Typical string read from attribute" );
assert.equal( i, 2, "Correct number of JSON parse attempts when reading from attributes" );
- jQuery.parseJSON = parseJSON;
+ JSON.parse = parseJSON;
child.remove();
// tests from metadata plugin
.end()
.undelegate( "b", "click" )
.remove();
-} );
\ No newline at end of file
+} );
+
+QUnit.test( "jQuery.parseJSON", function( assert ) {
+ assert.expect( 20 );
+
+ assert.strictEqual( jQuery.parseJSON( null ), null, "primitive null" );
+ assert.strictEqual( jQuery.parseJSON( "0.88" ), 0.88, "Number" );
+ assert.strictEqual(
+ jQuery.parseJSON( "\" \\\" \\\\ \\/ \\b \\f \\n \\r \\t \\u007E \\u263a \"" ),
+ " \" \\ / \b \f \n \r \t ~ \u263A ",
+ "String escapes"
+ );
+ assert.deepEqual( jQuery.parseJSON( "{}" ), {}, "Empty object" );
+ assert.deepEqual( jQuery.parseJSON( "{\"test\":1}" ), { "test": 1 }, "Plain object" );
+ assert.deepEqual( jQuery.parseJSON( "[0]" ), [ 0 ], "Simple array" );
+
+ assert.deepEqual(
+ jQuery.parseJSON( "[ \"string\", -4.2, 2.7180e0, 3.14E-1, {}, [], true, false, null ]" ),
+ [ "string", -4.2, 2.718, 0.314, {}, [], true, false, null ],
+ "Array of all data types"
+ );
+ assert.deepEqual(
+ jQuery.parseJSON( "{ \"string\": \"\", \"number\": 4.2e+1, \"object\": {}," +
+ "\"array\": [[]], \"boolean\": [ true, false ], \"null\": null }" ),
+ { string: "", number: 42, object: {}, array: [ [] ], "boolean": [ true, false ], "null": null },
+ "Dictionary of all data types"
+ );
+
+ assert.deepEqual( jQuery.parseJSON( "\n{\"test\":1}\t" ), { "test": 1 },
+ "Leading and trailing whitespace are ignored" );
+
+ assert.throws( function() {
+ jQuery.parseJSON();
+ }, null, "Undefined raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "" );
+ }, null, "Empty string raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "''" );
+ }, null, "Single-quoted string raises an error" );
+
+ assert.throws( function() {
+ var result = jQuery.parseJSON( "0101" );
+
+ // Support: IE9+
+ // Ensure base-10 interpretation on browsers that erroneously accept leading-zero numbers
+ if ( result === 101 ) {
+ throw new Error( "close enough" );
+ }
+ }, null, "Leading-zero number raises an error or is parsed as decimal" );
+ assert.throws( function() {
+ jQuery.parseJSON( "{a:1}" );
+ }, null, "Unquoted property raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "{'a':1}" );
+ }, null, "Single-quoted property raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "[,]" );
+ }, null, "Array element elision raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "{},[]" );
+ }, null, "Comma expression raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "[]\n,{}" );
+ }, null, "Newline-containing comma expression raises an error" );
+ assert.throws( function() {
+ jQuery.parseJSON( "\"\"\n\"\"" );
+ }, null, "Automatic semicolon insertion raises an error" );
+
+ assert.strictEqual( jQuery.parseJSON( [ 0 ] ), 0, "Input cast to string" );
+} );