THRIFT-3408: correct emitted JSON types

This closes #679
diff --git a/compiler/cpp/src/generate/t_json_generator.cc b/compiler/cpp/src/generate/t_json_generator.cc
index 3f44a82..10aaa64 100644
--- a/compiler/cpp/src/generate/t_json_generator.cc
+++ b/compiler/cpp/src/generate/t_json_generator.cc
@@ -701,8 +701,12 @@
   if (ttype->is_xception()) {
     return "exception";
   }
-  //if (ttype->is_base_type() && ((t_base_type*)ttype)->is_binary()) {
-  return "binary";
+  if (ttype->is_base_type()) {
+    t_base_type* tbasetype = (t_base_type*)ttype;
+    return tbasetype->is_binary() ? "binary" : t_base_type::t_base_name(tbasetype->get_base());
+  }
+
+  return "(unknown)";
 }
 
 string t_json_generator::get_qualified_name(t_type* ttype) {