diff --git a/pre_commit_hooks/check_json.py b/pre_commit_hooks/check_json.py
new file mode 100644
index 0000000..3caaf34
--- /dev/null
+++ b/pre_commit_hooks/check_json.py
@@ -0,0 +1,27 @@
+from __future__ import print_function
+
+import argparse
+import sys
+import simplejson
+
+from pre_commit_hooks.util import entry
+
+
+@entry
+def check_json(argv):
+    parser = argparse.ArgumentParser()
+    parser.add_argument('filenames', nargs='*', help='JSON filenames to check.')
+    args = parser.parse_args(argv)
+
+    retval = 0
+    for filename in args.filenames:
+        try:
+            simplejson.load(open(filename))
+        except simplejson.JSONDecodeError as e:
+            print('{0}: Failed to json encode ({1})'.format(filename, e))
+            retval = 1
+    return retval
+
+
+if __name__ == '__main__':
+    sys.exit(check_json())
diff --git a/pre_commit_hooks/check_yaml.py b/pre_commit_hooks/check_yaml.py
index 456f1f7..1de7de4 100644
--- a/pre_commit_hooks/check_yaml.py
+++ b/pre_commit_hooks/check_yaml.py
@@ -10,7 +10,7 @@
 @entry
 def check_yaml(argv):
     parser = argparse.ArgumentParser()
-    parser.add_argument('filenames', nargs='*', help='Filenames to check.')
+    parser.add_argument('filenames', nargs='*', help='Yaml filenames to check.')
     args = parser.parse_args(argv)
 
     retval = 0
