/// <summary>
        /// Copy constructor.<br>
        /// Initializes the components list with a deep copy of the source components list. </summary>
        /// <param name="source"> a field instance to copy
        /// @since 7.7 </param>
        public static Field252 newInstance(Field252 source)
        {
            Field252 cp = new Field252();

            cp.Components = new List <>(source.Components);
            return(cp);
        }
        /// <summary>
        /// This method deserializes the JSON data into a Field252 object. </summary>
        /// <param name="json"> JSON structure including tuples with label and value for all field components </param>
        /// <returns> a new field instance with the JSON data parsed into field components or an empty field id the JSON is invalid
        /// @since 7.10.3 </returns>
        /// <seealso cref= Field#fromJson(String) </seealso>
//JAVA TO C# CONVERTER WARNING: 'final' parameters are not allowed in .NET:
//ORIGINAL LINE: public static Field252 fromJson(final String json)
        public static Field252 fromJson(string json)
        {
            Field252   field      = new Field252();
            JsonParser parser     = new JsonParser();
            JsonObject jsonObject = (JsonObject)parser.parse(json);

            if (jsonObject.get("startMIR") != null)
            {
                field.setComponent1(jsonObject.get("startMIR").AsString);
            }
            if (jsonObject.get("endMIR") != null)
            {
                field.setComponent2(jsonObject.get("endMIR").AsString);
            }
            if (jsonObject.get("startTime") != null)
            {
                field.setComponent3(jsonObject.get("startTime").AsString);
            }
            if (jsonObject.get("endTime") != null)
            {
                field.setComponent4(jsonObject.get("endTime").AsString);
            }
            return(field);
        }