private void MapProperty()

in src/PSRule/Common/JsonConverters.cs [725:780]


        private void MapProperty(LanguageExpression.PropertyBag properties, JsonReader reader, out string name)
        {
            if (reader.TokenType != JsonToken.StartObject || !reader.Read())
            {
                throw new PipelineSerializationException(PSRuleResources.ReadJsonFailed);
            }

            name = null;

            while (reader.TokenType != JsonToken.EndObject)
            {
                var key = reader.Value.ToString();

                if (TryCondition(key) || TryOperator(key))
                {
                    name = key;
                }

                if (reader.Read())
                {
                    if (reader.TokenType == JsonToken.StartObject)
                    {
                        break;
                    }

                    else if (reader.TokenType == JsonToken.StartArray)
                    {
                        if (!TryCondition(key))
                        {
                            break;
                        }

                        var objects = new List<string>();

                        while (reader.TokenType != JsonToken.EndArray)
                        {
                            var value = reader.ReadAsString();

                            if (!string.IsNullOrEmpty(value))
                            {
                                objects.Add(value);
                            }
                        }

                        properties.Add(key, objects.ToArray());
                    }

                    else
                    {
                        properties.Add(key, reader.Value);
                    }
                }

                reader.Read();
            }
        }