docs: @SuppressWarnings("unchecked")
      public static String vector2JsonString(Object[] vector)
      {
          IStringBuffer sb = new IStringBuffer();
          sb.append('[');
          for ( Object o : vector )
          {
              if ( o instanceof List<?> ) {
                  sb.append(list2JsonString((List<Object>)o)).append(',');
              } else if (o instanceof Object[]) {
                  sb.append(vector2JsonString((Object[])o)).append(',');
              } else if (o instanceof Map<?,?>) {
                  sb.append(map2JsonString((Map<String, Object>)o)).append(',');
              } else if ((o instanceof Boolean) 
                      || (o instanceof Byte) || (o instanceof Short) 
                      || (o instanceof Integer) || (o instanceof Long) 
                      || (o instanceof Float) || (o instanceof Double)) {
                  sb.append(o.toString()).append(',');
              } else {
                  String v = o.toString();
                  int last = v.length() - 1;
                  
                  // Avoid string like "[Error] there is a problem" treat as a array 
                  // and "{error}: there is a problem" treat as object
                  if ( v.length() > 1 
                          && ( (v.charAt(0) == '{' && v.charAt(last) == '}' )
                                  || (v.charAt(0) == '[' && v.charAt(last) == ']' ) ) 
                  ) {
                      sb.append(v).append(',');
                  } else {
                      sb.append('"').append(v).append("\",");
                  }
              }
          }
          
          if ( sb.length() > 1 ) {
              sb.deleteCharAt(sb.length()-1);
          }
          sb.append(']');
          
          return sb.toString();
      }