DM: set source options only when non-empty.

BUG=skia:

Review URL: https://codereview.chromium.org/1063713002
diff --git a/dm/DMJsonWriter.cpp b/dm/DMJsonWriter.cpp
index c8334c5..4fe6924 100644
--- a/dm/DMJsonWriter.cpp
+++ b/dm/DMJsonWriter.cpp
@@ -52,12 +52,17 @@
         SkAutoMutexAcquire lock(&gBitmapResultLock);
         for (int i = 0; i < gBitmapResults.count(); i++) {
             Json::Value result;
-            result["key"]["name"]           = gBitmapResults[i].name.c_str();
-            result["key"]["config"]         = gBitmapResults[i].config.c_str();
-            result["key"]["source_type"]    = gBitmapResults[i].sourceType.c_str();
-            result["key"]["source_options"] = gBitmapResults[i].sourceOptions.c_str();
-            result["options"]["ext"]        = gBitmapResults[i].ext.c_str();
-            result["md5"]                   = gBitmapResults[i].md5.c_str();
+            result["key"]["name"]        = gBitmapResults[i].name.c_str();
+            result["key"]["config"]      = gBitmapResults[i].config.c_str();
+            result["key"]["source_type"] = gBitmapResults[i].sourceType.c_str();
+            result["options"]["ext"]     = gBitmapResults[i].ext.c_str();
+            result["md5"]                = gBitmapResults[i].md5.c_str();
+
+            // Source options only need to be part of the key if they exist.
+            // Source type by source type, we either always set options or never set options.
+            if (!gBitmapResults[i].sourceOptions.isEmpty()) {
+                result["key"]["source_options"] = gBitmapResults[i].sourceOptions.c_str();
+            }
 
             root["results"].append(result);
         }