private static string DecodeJsonString()

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