/// <summary>
 /// Recursive method to parse a tree in JSON into the flat
 /// dot-notation parameters used by the API.
 /// </summary>
 /// <param name="json">The JSON object.</param>
 /// <param name="key_prefix">The current key prefix.</param>
 protected void setOutputParams(JSONdn json, string key_prefix)
 {
     foreach (string key in json.getKeys())
     {
         string full_key = (key_prefix.Length == 0 ? "" : key_prefix + ".") + key;
         if (json.hasChildren(key))
         {
             setOutputParams(new JSONdn(json.getJVal(key)), full_key);
         }
         else
         {
             set(full_key, json.getStringVal(key));
         }
     }
 }