Exemplo n.º 1
0
 private static void SerializeString(string input, System.Text.StringBuilder sb)
 {
     sb.Append('"');
     sb.Append(JavaScriptString.QuoteString(input));
     sb.Append('"');
 }
Exemplo n.º 2
0
 private JavaScriptObjectDeserializer(string input, int depthLimit, JavaScriptSerializer serializer)
 {
     this._s          = new JavaScriptString(input);
     this._depthLimit = depthLimit;
     this._serializer = serializer;
 }
Exemplo n.º 3
0
        internal static string QuoteString(string value)
        {
            System.Text.StringBuilder stringBuilder = null;
            string result;

            if (string.IsNullOrEmpty(value))
            {
                result = string.Empty;
            }
            else
            {
                int startIndex = 0;
                int num        = 0;
                int i          = 0;
                while (i < value.Length)
                {
                    char c = value[i];
                    if (c == '\r' || c == '\t' || c == '"' || c == '\'' || c == '\\' || c == '\n' || c == '\b' || c == '\f' || c < ' ')
                    {
                        if (stringBuilder == null)
                        {
                            stringBuilder = new System.Text.StringBuilder(value.Length + 5);
                        }
                        if (num > 0)
                        {
                            stringBuilder.Append(value, startIndex, num);
                        }
                        startIndex = i + 1;
                        num        = 0;
                    }
                    char c2 = c;
                    if (c2 <= '"')
                    {
                        switch (c2)
                        {
                        case '\b':
                            stringBuilder.Append("\\b");
                            break;

                        case '\t':
                            stringBuilder.Append("\\t");
                            break;

                        case '\n':
                            stringBuilder.Append("\\n");
                            break;

                        case '\v':
                            goto IL_164;

                        case '\f':
                            stringBuilder.Append("\\f");
                            break;

                        case '\r':
                            stringBuilder.Append("\\r");
                            break;

                        default:
                            if (c2 != '"')
                            {
                                goto IL_164;
                            }
                            stringBuilder.Append("\\\"");
                            break;
                        }
                    }
                    else if (c2 != '\'')
                    {
                        if (c2 != '\\')
                        {
                            goto IL_164;
                        }
                        stringBuilder.Append("\\\\");
                    }
                    else
                    {
                        JavaScriptString.AppendCharAsUnicode(stringBuilder, c);
                    }
IL_188:
                    i++;
                    continue;
IL_164:
                    if (c < ' ')
                    {
                        JavaScriptString.AppendCharAsUnicode(stringBuilder, c);
                    }
                    else
                    {
                        num++;
                    }
                    goto IL_188;
                }
                if (stringBuilder == null)
                {
                    result = value;
                }
                else
                {
                    if (num > 0)
                    {
                        stringBuilder.Append(value, startIndex, num);
                    }
                    result = stringBuilder.ToString();
                }
            }
            return(result);
        }