${iServerJava6R_Query_Recordset_Title}

${iServerJava6R_Query_Recordset_Description}

        /// <summary>${iServerJava6R_Query_method_FromJson_D}</summary>
        /// <returns>${iServerJava6R_Query_method_FromJson_return}</returns>
        /// <param name="json">${iServerJava6R_Query_method_FromJson_param_jsonObject}</param>
        public static Recordset FromJson(JsonObject json)
        {
            if (json == null)
            {
                return null;
            }

            Recordset result = new Recordset();

            result.DatasetName = (string)json["datasetName"];
            result.FieldCaptions = JsonHelper.ToStringList((JsonArray)json["fieldCaptions"]);

            JsonArray fieldtypes = (JsonArray)json["fieldTypes"];
            if (fieldtypes != null && fieldtypes.Count > 0)
            {
                result.FieldTypes = new List<FieldType>();
                for (int i = 0; i < fieldtypes.Count; i++)
                {
                    result.FieldTypes.Add((FieldType)Enum.Parse(typeof(FieldType), (string)fieldtypes[i], true));
                }
            }

            result.Fields = JsonHelper.ToStringList((JsonArray)json["fields"]);
            List<string> fieldNames = JsonHelper.ToStringList((JsonArray)json["fields"]);
            JsonArray features = (JsonArray)json["features"];
            if (features != null && features.Count > 0 )
            {
                result.Features = new FeatureCollection();

                for (int i = 0; i < features.Count; i++)
                {
                    ServerFeature f = ServerFeature.FromJson((JsonObject)features[i]);

                    f.FieldNames = new List<string>();
                    if (fieldNames != null && fieldNames.Count > 0)
                    {
                        for (int j = 0; j < fieldNames.Count; j++)
                        {
                            f.FieldNames.Add(fieldNames[j]);
                        }
                    }
                    result.Features.Add(f.ToFeature());
                }
            }
            return result;
        }