diff --git a/openstack/compute/v2/extensions/keypairs/results.go b/openstack/compute/v2/extensions/keypairs/results.go
index 58a51d2..2b40943 100644
--- a/openstack/compute/v2/extensions/keypairs/results.go
+++ b/openstack/compute/v2/extensions/keypairs/results.go
@@ -1,7 +1,6 @@
 package keypairs
 
 import (
-	"github.com/mitchellh/mapstructure"
 	"github.com/gophercloud/gophercloud"
 	"github.com/gophercloud/gophercloud/pagination"
 )
@@ -10,22 +9,22 @@
 // servers.
 type KeyPair struct {
 	// Name is used to refer to this keypair from other services within this region.
-	Name string `mapstructure:"name"`
+	Name string `json:"name"`
 
 	// Fingerprint is a short sequence of bytes that can be used to authenticate or validate a longer
 	// public key.
-	Fingerprint string `mapstructure:"fingerprint"`
+	Fingerprint string `json:"fingerprint"`
 
 	// PublicKey is the public key from this pair, in OpenSSH format. "ssh-rsa AAAAB3Nz..."
-	PublicKey string `mapstructure:"public_key"`
+	PublicKey string `json:"public_key"`
 
 	// PrivateKey is the private key from this pair, in PEM format.
 	// "-----BEGIN RSA PRIVATE KEY-----\nMIICXA..." It is only present if this keypair was just
 	// returned from a Create call
-	PrivateKey string `mapstructure:"private_key"`
+	PrivateKey string `json:"private_key"`
 
 	// UserID is the user who owns this keypair.
-	UserID string `mapstructure:"user_id"`
+	UserID string `json:"user_id"`
 }
 
 // KeyPairPage stores a single, only page of KeyPair results from a List call.
@@ -41,17 +40,16 @@
 
 // ExtractKeyPairs interprets a page of results as a slice of KeyPairs.
 func ExtractKeyPairs(page pagination.Page) ([]KeyPair, error) {
+	r := page.(KeyPairPage)
 	type pair struct {
-		KeyPair KeyPair `mapstructure:"keypair"`
+		KeyPair KeyPair `json:"keypair"`
 	}
-
-	var resp struct {
-		KeyPairs []pair `mapstructure:"keypairs"`
+	var s struct {
+		KeyPairs []pair `json:"keypairs"`
 	}
-
-	err := mapstructure.Decode(page.(KeyPairPage).Body, &resp)
-	results := make([]KeyPair, len(resp.KeyPairs))
-	for i, pair := range resp.KeyPairs {
+	err := r.ExtractInto(&s)
+	results := make([]KeyPair, len(s.KeyPairs))
+	for i, pair := range s.KeyPairs {
 		results[i] = pair.KeyPair
 	}
 	return results, err
@@ -63,16 +61,11 @@
 
 // Extract is a method that attempts to interpret any KeyPair resource response as a KeyPair struct.
 func (r keyPairResult) Extract() (*KeyPair, error) {
-	if r.Err != nil {
-		return nil, r.Err
+	var s struct {
+		KeyPair *KeyPair `json:"keypair"`
 	}
-
-	var res struct {
-		KeyPair *KeyPair `json:"keypair" mapstructure:"keypair"`
-	}
-
-	err := mapstructure.Decode(r.Body, &res)
-	return res.KeyPair, err
+	err := r.ExtractInto(&s)
+	return s.KeyPair, err
 }
 
 // CreateResult is the response from a Create operation. Call its Extract method to interpret it
