in src/PSRule.Rules.Azure/Data/Template/Functions.cs [499:528]
private static string DecodeJsonString(string s)
{
if (s.Length == 2 && s[0] == SINGLE_QUOTE && s[1] == SINGLE_QUOTE)
return s;
var pos = 0;
var c = new char[s.Length];
var quoted = false;
for (var i = 0; i < s.Length; i++)
{
if (!(s[i] == DOUBLE_QUOTE || s[i] == SINGLE_QUOTE) || i == s.Length - 1)
{
c[pos++] = s[i];
}
else if (s[i] == DOUBLE_QUOTE)
{
c[pos++] = s[i];
quoted = !quoted;
}
else if (!quoted && s[i] == SINGLE_QUOTE && s[i + 1] == SINGLE_QUOTE)
{
c[pos++] = s[i++];
}
else
{
c[pos++] = s[i];
}
}
return new string(c, 0, pos);
}