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();
}
}