private static string processFields(Esri.FileGDB.Row row)
        {
            string retval = "\"properties\": {";
            List<string> props = new List<string>();
            string proptemplate = "\"{0}\": \"{1}\"";
            for (int fldnum = 0; fldnum < row.FieldInformation.Count; fldnum++)
            {
                string fldname = row.FieldInformation.GetFieldName(fldnum);
                string fldval = "";
                if (row.IsNull(fldname))
                {
                    fldval = "null";
                }
                else
                {
                    switch (row.FieldInformation.GetFieldType(fldnum))
                    {
                        case FieldType.Geometry:
                            fldval = "geometry";
                            break;
                        case FieldType.Blob:
                            fldval = "blob";
                            break;
                        case FieldType.SmallInteger:
                            fldval = row.GetShort(fldname).ToString();
                            break;
                        case FieldType.Integer:
                            fldval = row.GetInteger(fldname).ToString();
                            break;
                        case FieldType.Single:
                            fldval = row.GetFloat(fldname).ToString();
                            break;
                        case FieldType.Double:
                            fldval = row.GetDouble(fldname).ToString();
                            break;
                        case FieldType.String:
                            fldval = row.GetString(fldname);
                            break;
                        case FieldType.Date:
                            fldval = row.GetDate(fldname).ToLongTimeString();
                            break;
                        case FieldType.OID:
                            fldval = row.GetOID().ToString();
                            break;
                        case FieldType.GUID:
                            fldval = row.GetGUID(fldname).ToString();
                            break;
                        case FieldType.GlobalID:
                            fldval = row.GetGlobalID().ToString();
                            break;
                        default:
                            break;
                    }
                }
                string propval = string.Format(proptemplate, fldname, fldval);
                props.Add(propval);
            }
            var proparray = props.ToArray();
            string propsjoin = string.Join(",", proparray);
            retval += propsjoin;
            retval += "}";

            return retval;
        }