diff --git a/lib/testing.dart b/lib/testing.dart
index 9fe7b06..45d2c61 100644
--- a/lib/testing.dart
+++ b/lib/testing.dart
@@ -8,14 +8,14 @@
 /// allows test code to set up a local request handler in order to fake a server
 /// that responds to HTTP requests:
 ///
-///     import 'dart:json' as json;
+///     import 'dart:convert';
 ///     import 'package:http/testing.dart';
 ///
 ///     var client = new MockClient((request) {
 ///       if (request.url.path != "/data.json") {
 ///         return new Response("", 404);
 ///       }
-///       return new Response(json.stringify({
+///       return new Response(JSON.encode({
 ///         'numbers': [1, 4, 15, 19, 214]
 ///       }, 200, headers: {
 ///         'content-type': 'application/json'
diff --git a/test/mock_client_test.dart b/test/mock_client_test.dart
index 997f0bb..07066ec 100644
--- a/test/mock_client_test.dart
+++ b/test/mock_client_test.dart
@@ -5,7 +5,7 @@
 library mock_client_test;
 
 import 'dart:async';
-import 'dart:json' as json;
+import 'dart:convert';
 
 import 'package:http/http.dart' as http;
 import 'package:http/src/utils.dart';
@@ -18,7 +18,7 @@
   test('handles a request', () {
     var client = new MockClient((request) {
       return new Future.value(new http.Response(
-          json.stringify(request.bodyFields), 200,
+          JSON.encode(request.bodyFields), 200,
           request: request, headers: {'content-type': 'application/json'}));
     });
 
diff --git a/test/utils.dart b/test/utils.dart
index 7b42bec..f9a7381 100644
--- a/test/utils.dart
+++ b/test/utils.dart
@@ -7,7 +7,6 @@
 import 'dart:async';
 import 'dart:convert';
 import 'dart:io';
-import 'dart:json' as json;
 
 import 'package:http/src/byte_stream.dart';
 import 'package:http/src/utils.dart';
@@ -96,7 +95,7 @@
           content['headers'][name] = values;
         });
 
-        var body = json.stringify(content);
+        var body = JSON.encode(content);
         response.contentLength = body.length;
         response.write(body);
         response.close();
@@ -154,7 +153,7 @@
 
     var parsed;
     try {
-      parsed = json.parse(item);
+      parsed = JSON.decode(item);
     } catch (e) {
       return false;
     }
