private string ParseString()
{
StringBuilder builder = new StringBuilder();
this.json.Read();
bool flag = true;
while (flag)
{
char[] chArray;
int num;
if (this.json.Peek() == -1)
{
flag = false;
break;
}
char nextChar = this.NextChar;
if (nextChar == '"')
{
flag = false;
continue;
}
if (nextChar != '\\')
{
goto Label_015F;
}
if (this.json.Peek() == -1)
{
flag = false;
continue;
}
nextChar = this.NextChar;
switch (nextChar)
{
case 'r':
{
builder.Append('\r');
continue;
}
case 't':
{
builder.Append('\t');
continue;
}
case 'u':
chArray = new char[4];
num = 0;
goto Label_0138;
default:
{
if (((nextChar != '"') && (nextChar != '/')) && (nextChar != '\\'))
{
if (nextChar == 'b')
{
break;
}
if (nextChar == 'f')
{
goto Label_00DF;
}
if (nextChar == 'n')
{
goto Label_00ED;
}
}
else
{
builder.Append(nextChar);
}
continue;
}
}
builder.Append('\b');
continue;
Label_00DF:
builder.Append('\f');
continue;
Label_00ED:
builder.Append('\n');
continue;
Label_0126:
chArray[num] = this.NextChar;
num++;
Label_0138:
if (num < 4)
{
goto Label_0126;
}
builder.Append((char) Convert.ToInt32(new string(chArray), 0x10));
continue;
Label_015F:
builder.Append(nextChar);
}
return builder.ToString();
}