scripts
This commit is contained in:
@@ -0,0 +1,852 @@
|
||||
using System;
|
||||
using System.CodeDom.Compiler;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.ComponentModel;
|
||||
using System.Globalization;
|
||||
using System.Runtime.Serialization;
|
||||
using System.Text;
|
||||
using SimpleJson.Reflection;
|
||||
|
||||
namespace SimpleJson
|
||||
{
|
||||
// Token: 0x020002E3 RID: 739
|
||||
[GeneratedCode("simple-json", "1.0.0")]
|
||||
internal static class SimpleJson
|
||||
{
|
||||
// Token: 0x06003091 RID: 12433 RVA: 0x00046F90 File Offset: 0x00045190
|
||||
public static object DeserializeObject(string json)
|
||||
{
|
||||
object obj;
|
||||
if (SimpleJson.TryDeserializeObject(json, out obj))
|
||||
{
|
||||
return obj;
|
||||
}
|
||||
throw new SerializationException("Invalid JSON string");
|
||||
}
|
||||
|
||||
// Token: 0x06003092 RID: 12434 RVA: 0x00046FC0 File Offset: 0x000451C0
|
||||
public static bool TryDeserializeObject(string json, out object obj)
|
||||
{
|
||||
bool flag = true;
|
||||
if (json != null)
|
||||
{
|
||||
char[] array = json.ToCharArray();
|
||||
int num = 0;
|
||||
obj = SimpleJson.ParseValue(array, ref num, ref flag);
|
||||
}
|
||||
else
|
||||
{
|
||||
obj = null;
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x06003093 RID: 12435 RVA: 0x00047000 File Offset: 0x00045200
|
||||
public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy)
|
||||
{
|
||||
object obj = SimpleJson.DeserializeObject(json);
|
||||
return (type != null && (obj == null || !ReflectionUtils.IsAssignableFrom(obj.GetType(), type))) ? (jsonSerializerStrategy ?? SimpleJson.CurrentJsonSerializerStrategy).DeserializeObject(obj, type) : obj;
|
||||
}
|
||||
|
||||
// Token: 0x06003094 RID: 12436 RVA: 0x00047054 File Offset: 0x00045254
|
||||
public static object DeserializeObject(string json, Type type)
|
||||
{
|
||||
return SimpleJson.DeserializeObject(json, type, null);
|
||||
}
|
||||
|
||||
// Token: 0x06003095 RID: 12437 RVA: 0x00047074 File Offset: 0x00045274
|
||||
public static T DeserializeObject<T>(string json, IJsonSerializerStrategy jsonSerializerStrategy)
|
||||
{
|
||||
return (T)((object)SimpleJson.DeserializeObject(json, typeof(T), jsonSerializerStrategy));
|
||||
}
|
||||
|
||||
// Token: 0x06003096 RID: 12438 RVA: 0x000470A0 File Offset: 0x000452A0
|
||||
public static T DeserializeObject<T>(string json)
|
||||
{
|
||||
return (T)((object)SimpleJson.DeserializeObject(json, typeof(T), null));
|
||||
}
|
||||
|
||||
// Token: 0x06003097 RID: 12439 RVA: 0x000470CC File Offset: 0x000452CC
|
||||
public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder(2000);
|
||||
bool flag = SimpleJson.SerializeValue(jsonSerializerStrategy, json, stringBuilder);
|
||||
return (!flag) ? null : stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x06003098 RID: 12440 RVA: 0x00047108 File Offset: 0x00045308
|
||||
public static string SerializeObject(object json)
|
||||
{
|
||||
return SimpleJson.SerializeObject(json, SimpleJson.CurrentJsonSerializerStrategy);
|
||||
}
|
||||
|
||||
// Token: 0x06003099 RID: 12441 RVA: 0x00047128 File Offset: 0x00045328
|
||||
public static string EscapeToJavascriptString(string jsonString)
|
||||
{
|
||||
string text;
|
||||
if (string.IsNullOrEmpty(jsonString))
|
||||
{
|
||||
text = jsonString;
|
||||
}
|
||||
else
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder();
|
||||
int i = 0;
|
||||
while (i < jsonString.Length)
|
||||
{
|
||||
char c = jsonString[i++];
|
||||
if (c == '\\')
|
||||
{
|
||||
int num = jsonString.Length - i;
|
||||
if (num >= 2)
|
||||
{
|
||||
char c2 = jsonString[i];
|
||||
if (c2 == '\\')
|
||||
{
|
||||
stringBuilder.Append('\\');
|
||||
i++;
|
||||
}
|
||||
else if (c2 == '"')
|
||||
{
|
||||
stringBuilder.Append("\"");
|
||||
i++;
|
||||
}
|
||||
else if (c2 == 't')
|
||||
{
|
||||
stringBuilder.Append('\t');
|
||||
i++;
|
||||
}
|
||||
else if (c2 == 'b')
|
||||
{
|
||||
stringBuilder.Append('\b');
|
||||
i++;
|
||||
}
|
||||
else if (c2 == 'n')
|
||||
{
|
||||
stringBuilder.Append('\n');
|
||||
i++;
|
||||
}
|
||||
else if (c2 == 'r')
|
||||
{
|
||||
stringBuilder.Append('\r');
|
||||
i++;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
stringBuilder.Append(c);
|
||||
}
|
||||
}
|
||||
text = stringBuilder.ToString();
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600309A RID: 12442 RVA: 0x00047260 File Offset: 0x00045460
|
||||
private static IDictionary<string, object> ParseObject(char[] json, ref int index, ref bool success)
|
||||
{
|
||||
IDictionary<string, object> dictionary = new JsonObject();
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
bool flag = false;
|
||||
while (!flag)
|
||||
{
|
||||
int num = SimpleJson.LookAhead(json, index);
|
||||
if (num != 0)
|
||||
{
|
||||
if (num == 6)
|
||||
{
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (num == 2)
|
||||
{
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
return dictionary;
|
||||
}
|
||||
string text = SimpleJson.ParseString(json, ref index, ref success);
|
||||
if (!success)
|
||||
{
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
num = SimpleJson.NextToken(json, ref index);
|
||||
if (num != 5)
|
||||
{
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
object obj = SimpleJson.ParseValue(json, ref index, ref success);
|
||||
if (!success)
|
||||
{
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
dictionary[text] = obj;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
return dictionary;
|
||||
}
|
||||
|
||||
// Token: 0x0600309B RID: 12443 RVA: 0x00047338 File Offset: 0x00045538
|
||||
private static JsonArray ParseArray(char[] json, ref int index, ref bool success)
|
||||
{
|
||||
JsonArray jsonArray = new JsonArray();
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
bool flag = false;
|
||||
while (!flag)
|
||||
{
|
||||
int num = SimpleJson.LookAhead(json, index);
|
||||
if (num != 0)
|
||||
{
|
||||
if (num == 6)
|
||||
{
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
}
|
||||
else
|
||||
{
|
||||
if (num == 4)
|
||||
{
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
break;
|
||||
}
|
||||
object obj = SimpleJson.ParseValue(json, ref index, ref success);
|
||||
if (!success)
|
||||
{
|
||||
return null;
|
||||
}
|
||||
jsonArray.Add(obj);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
return jsonArray;
|
||||
}
|
||||
|
||||
// Token: 0x0600309C RID: 12444 RVA: 0x000473D0 File Offset: 0x000455D0
|
||||
private static object ParseValue(char[] json, ref int index, ref bool success)
|
||||
{
|
||||
switch (SimpleJson.LookAhead(json, index))
|
||||
{
|
||||
case 1:
|
||||
return SimpleJson.ParseObject(json, ref index, ref success);
|
||||
case 3:
|
||||
return SimpleJson.ParseArray(json, ref index, ref success);
|
||||
case 7:
|
||||
return SimpleJson.ParseString(json, ref index, ref success);
|
||||
case 8:
|
||||
return SimpleJson.ParseNumber(json, ref index, ref success);
|
||||
case 9:
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
return true;
|
||||
case 10:
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
return false;
|
||||
case 11:
|
||||
SimpleJson.NextToken(json, ref index);
|
||||
return null;
|
||||
}
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
|
||||
// Token: 0x0600309D RID: 12445 RVA: 0x000474A4 File Offset: 0x000456A4
|
||||
private static string ParseString(char[] json, ref int index, ref bool success)
|
||||
{
|
||||
StringBuilder stringBuilder = new StringBuilder(2000);
|
||||
SimpleJson.EatWhitespace(json, ref index);
|
||||
char c = json[index++];
|
||||
bool flag = false;
|
||||
while (!flag)
|
||||
{
|
||||
if (index == json.Length)
|
||||
{
|
||||
break;
|
||||
}
|
||||
c = json[index++];
|
||||
if (c == '"')
|
||||
{
|
||||
flag = true;
|
||||
break;
|
||||
}
|
||||
if (c == '\\')
|
||||
{
|
||||
if (index == json.Length)
|
||||
{
|
||||
break;
|
||||
}
|
||||
c = json[index++];
|
||||
if (c == '"')
|
||||
{
|
||||
stringBuilder.Append('"');
|
||||
}
|
||||
else if (c == '\\')
|
||||
{
|
||||
stringBuilder.Append('\\');
|
||||
}
|
||||
else if (c == '/')
|
||||
{
|
||||
stringBuilder.Append('/');
|
||||
}
|
||||
else if (c == 'b')
|
||||
{
|
||||
stringBuilder.Append('\b');
|
||||
}
|
||||
else if (c == 'f')
|
||||
{
|
||||
stringBuilder.Append('\f');
|
||||
}
|
||||
else if (c == 'n')
|
||||
{
|
||||
stringBuilder.Append('\n');
|
||||
}
|
||||
else if (c == 'r')
|
||||
{
|
||||
stringBuilder.Append('\r');
|
||||
}
|
||||
else if (c == 't')
|
||||
{
|
||||
stringBuilder.Append('\t');
|
||||
}
|
||||
else if (c == 'u')
|
||||
{
|
||||
int num = json.Length - index;
|
||||
if (num >= 4)
|
||||
{
|
||||
uint num2;
|
||||
string text;
|
||||
if (!(success = uint.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out num2)))
|
||||
{
|
||||
text = "";
|
||||
}
|
||||
else
|
||||
{
|
||||
if (55296U > num2 || num2 > 56319U)
|
||||
{
|
||||
stringBuilder.Append(SimpleJson.ConvertFromUtf32((int)num2));
|
||||
index += 4;
|
||||
continue;
|
||||
}
|
||||
index += 4;
|
||||
num = json.Length - index;
|
||||
if (num >= 6)
|
||||
{
|
||||
uint num3;
|
||||
if (new string(json, index, 2) == "\\u" && uint.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out num3))
|
||||
{
|
||||
if (56320U <= num3 && num3 <= 57343U)
|
||||
{
|
||||
stringBuilder.Append((char)num2);
|
||||
stringBuilder.Append((char)num3);
|
||||
index += 6;
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
success = false;
|
||||
text = "";
|
||||
}
|
||||
return text;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
stringBuilder.Append(c);
|
||||
}
|
||||
}
|
||||
if (!flag)
|
||||
{
|
||||
success = false;
|
||||
return null;
|
||||
}
|
||||
return stringBuilder.ToString();
|
||||
}
|
||||
|
||||
// Token: 0x0600309E RID: 12446 RVA: 0x0004772C File Offset: 0x0004592C
|
||||
private static string ConvertFromUtf32(int utf32)
|
||||
{
|
||||
if (utf32 < 0 || utf32 > 1114111)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF.");
|
||||
}
|
||||
if (55296 <= utf32 && utf32 <= 57343)
|
||||
{
|
||||
throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range.");
|
||||
}
|
||||
string text;
|
||||
if (utf32 < 65536)
|
||||
{
|
||||
text = new string((char)utf32, 1);
|
||||
}
|
||||
else
|
||||
{
|
||||
utf32 -= 65536;
|
||||
text = new string(new char[]
|
||||
{
|
||||
(char)((utf32 >> 10) + 55296),
|
||||
(char)(utf32 % 1024 + 56320)
|
||||
});
|
||||
}
|
||||
return text;
|
||||
}
|
||||
|
||||
// Token: 0x0600309F RID: 12447 RVA: 0x000477D8 File Offset: 0x000459D8
|
||||
private static object ParseNumber(char[] json, ref int index, ref bool success)
|
||||
{
|
||||
SimpleJson.EatWhitespace(json, ref index);
|
||||
int lastIndexOfNumber = SimpleJson.GetLastIndexOfNumber(json, index);
|
||||
int num = lastIndexOfNumber - index + 1;
|
||||
string text = new string(json, index, num);
|
||||
object obj;
|
||||
if (text.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || text.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1)
|
||||
{
|
||||
double num2;
|
||||
success = double.TryParse(new string(json, index, num), NumberStyles.Any, CultureInfo.InvariantCulture, out num2);
|
||||
obj = num2;
|
||||
}
|
||||
else
|
||||
{
|
||||
long num3;
|
||||
success = long.TryParse(new string(json, index, num), NumberStyles.Any, CultureInfo.InvariantCulture, out num3);
|
||||
obj = num3;
|
||||
}
|
||||
index = lastIndexOfNumber + 1;
|
||||
return obj;
|
||||
}
|
||||
|
||||
// Token: 0x060030A0 RID: 12448 RVA: 0x0004788C File Offset: 0x00045A8C
|
||||
private static int GetLastIndexOfNumber(char[] json, int index)
|
||||
{
|
||||
int i;
|
||||
for (i = index; i < json.Length; i++)
|
||||
{
|
||||
if ("0123456789+-.eE".IndexOf(json[i]) == -1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
return i - 1;
|
||||
}
|
||||
|
||||
// Token: 0x060030A1 RID: 12449 RVA: 0x000478D0 File Offset: 0x00045AD0
|
||||
private static void EatWhitespace(char[] json, ref int index)
|
||||
{
|
||||
while (index < json.Length)
|
||||
{
|
||||
if (" \t\n\r\b\f".IndexOf(json[index]) == -1)
|
||||
{
|
||||
break;
|
||||
}
|
||||
index++;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x060030A2 RID: 12450 RVA: 0x00047904 File Offset: 0x00045B04
|
||||
private static int LookAhead(char[] json, int index)
|
||||
{
|
||||
int num = index;
|
||||
return SimpleJson.NextToken(json, ref num);
|
||||
}
|
||||
|
||||
// Token: 0x060030A3 RID: 12451 RVA: 0x00047924 File Offset: 0x00045B24
|
||||
private static int NextToken(char[] json, ref int index)
|
||||
{
|
||||
SimpleJson.EatWhitespace(json, ref index);
|
||||
int num;
|
||||
if (index == json.Length)
|
||||
{
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
char c = json[index];
|
||||
index++;
|
||||
switch (c)
|
||||
{
|
||||
case ',':
|
||||
num = 6;
|
||||
break;
|
||||
case '-':
|
||||
case '0':
|
||||
case '1':
|
||||
case '2':
|
||||
case '3':
|
||||
case '4':
|
||||
case '5':
|
||||
case '6':
|
||||
case '7':
|
||||
case '8':
|
||||
case '9':
|
||||
num = 8;
|
||||
break;
|
||||
default:
|
||||
switch (c)
|
||||
{
|
||||
case '[':
|
||||
num = 3;
|
||||
break;
|
||||
default:
|
||||
switch (c)
|
||||
{
|
||||
case '{':
|
||||
num = 1;
|
||||
break;
|
||||
default:
|
||||
if (c != '"')
|
||||
{
|
||||
index--;
|
||||
int num2 = json.Length - index;
|
||||
if (num2 >= 5)
|
||||
{
|
||||
if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e')
|
||||
{
|
||||
index += 5;
|
||||
num = 10;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (num2 >= 4)
|
||||
{
|
||||
if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e')
|
||||
{
|
||||
index += 4;
|
||||
num = 9;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (num2 >= 4)
|
||||
{
|
||||
if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l')
|
||||
{
|
||||
index += 4;
|
||||
num = 11;
|
||||
break;
|
||||
}
|
||||
}
|
||||
num = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
num = 7;
|
||||
}
|
||||
break;
|
||||
case '}':
|
||||
num = 2;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ']':
|
||||
num = 4;
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case ':':
|
||||
num = 5;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return num;
|
||||
}
|
||||
|
||||
// Token: 0x060030A4 RID: 12452 RVA: 0x00047B0C File Offset: 0x00045D0C
|
||||
private static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder)
|
||||
{
|
||||
bool flag = true;
|
||||
string text = value as string;
|
||||
if (text != null)
|
||||
{
|
||||
flag = SimpleJson.SerializeString(text, builder);
|
||||
}
|
||||
else
|
||||
{
|
||||
IDictionary<string, object> dictionary = value as IDictionary<string, object>;
|
||||
if (dictionary != null)
|
||||
{
|
||||
flag = SimpleJson.SerializeObject(jsonSerializerStrategy, dictionary.Keys, dictionary.Values, builder);
|
||||
}
|
||||
else
|
||||
{
|
||||
IDictionary<string, string> dictionary2 = value as IDictionary<string, string>;
|
||||
if (dictionary2 != null)
|
||||
{
|
||||
flag = SimpleJson.SerializeObject(jsonSerializerStrategy, dictionary2.Keys, dictionary2.Values, builder);
|
||||
}
|
||||
else
|
||||
{
|
||||
IEnumerable enumerable = value as IEnumerable;
|
||||
if (enumerable != null)
|
||||
{
|
||||
flag = SimpleJson.SerializeArray(jsonSerializerStrategy, enumerable, builder);
|
||||
}
|
||||
else if (SimpleJson.IsNumeric(value))
|
||||
{
|
||||
flag = SimpleJson.SerializeNumber(value, builder);
|
||||
}
|
||||
else if (value is bool)
|
||||
{
|
||||
builder.Append((!(bool)value) ? "false" : "true");
|
||||
}
|
||||
else if (value == null)
|
||||
{
|
||||
builder.Append("null");
|
||||
}
|
||||
else
|
||||
{
|
||||
object obj;
|
||||
flag = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out obj);
|
||||
if (flag)
|
||||
{
|
||||
SimpleJson.SerializeValue(jsonSerializerStrategy, obj, builder);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return flag;
|
||||
}
|
||||
|
||||
// Token: 0x060030A5 RID: 12453 RVA: 0x00047C30 File Offset: 0x00045E30
|
||||
private static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder)
|
||||
{
|
||||
builder.Append("{");
|
||||
IEnumerator enumerator = keys.GetEnumerator();
|
||||
IEnumerator enumerator2 = values.GetEnumerator();
|
||||
bool flag = true;
|
||||
while (enumerator.MoveNext() && enumerator2.MoveNext())
|
||||
{
|
||||
object obj = enumerator.Current;
|
||||
object obj2 = enumerator2.Current;
|
||||
if (!flag)
|
||||
{
|
||||
builder.Append(",");
|
||||
}
|
||||
string text = obj as string;
|
||||
if (text != null)
|
||||
{
|
||||
SimpleJson.SerializeString(text, builder);
|
||||
}
|
||||
else if (!SimpleJson.SerializeValue(jsonSerializerStrategy, obj2, builder))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
builder.Append(":");
|
||||
if (SimpleJson.SerializeValue(jsonSerializerStrategy, obj2, builder))
|
||||
{
|
||||
flag = false;
|
||||
continue;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
builder.Append("}");
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x060030A6 RID: 12454 RVA: 0x00047D08 File Offset: 0x00045F08
|
||||
private static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder)
|
||||
{
|
||||
builder.Append("[");
|
||||
bool flag = true;
|
||||
IEnumerator enumerator = anArray.GetEnumerator();
|
||||
try
|
||||
{
|
||||
while (enumerator.MoveNext())
|
||||
{
|
||||
object obj = enumerator.Current;
|
||||
if (!flag)
|
||||
{
|
||||
builder.Append(",");
|
||||
}
|
||||
if (!SimpleJson.SerializeValue(jsonSerializerStrategy, obj, builder))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
flag = false;
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
IDisposable disposable;
|
||||
if ((disposable = enumerator as IDisposable) != null)
|
||||
{
|
||||
disposable.Dispose();
|
||||
}
|
||||
}
|
||||
builder.Append("]");
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x060030A7 RID: 12455 RVA: 0x00047DAC File Offset: 0x00045FAC
|
||||
private static bool SerializeString(string aString, StringBuilder builder)
|
||||
{
|
||||
builder.Append("\"");
|
||||
foreach (char c in aString.ToCharArray())
|
||||
{
|
||||
if (c == '"')
|
||||
{
|
||||
builder.Append("\\\"");
|
||||
}
|
||||
else if (c == '\\')
|
||||
{
|
||||
builder.Append("\\\\");
|
||||
}
|
||||
else if (c == '\b')
|
||||
{
|
||||
builder.Append("\\b");
|
||||
}
|
||||
else if (c == '\f')
|
||||
{
|
||||
builder.Append("\\f");
|
||||
}
|
||||
else if (c == '\n')
|
||||
{
|
||||
builder.Append("\\n");
|
||||
}
|
||||
else if (c == '\r')
|
||||
{
|
||||
builder.Append("\\r");
|
||||
}
|
||||
else if (c == '\t')
|
||||
{
|
||||
builder.Append("\\t");
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.Append(c);
|
||||
}
|
||||
}
|
||||
builder.Append("\"");
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x060030A8 RID: 12456 RVA: 0x00047EB4 File Offset: 0x000460B4
|
||||
private static bool SerializeNumber(object number, StringBuilder builder)
|
||||
{
|
||||
if (number is long)
|
||||
{
|
||||
builder.Append(((long)number).ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
else if (number is ulong)
|
||||
{
|
||||
builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
else if (number is int)
|
||||
{
|
||||
builder.Append(((int)number).ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
else if (number is uint)
|
||||
{
|
||||
builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
else if (number is decimal)
|
||||
{
|
||||
builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
else if (number is float)
|
||||
{
|
||||
builder.Append(((float)number).ToString(CultureInfo.InvariantCulture));
|
||||
}
|
||||
else
|
||||
{
|
||||
builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture));
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
// Token: 0x060030A9 RID: 12457 RVA: 0x00047FF0 File Offset: 0x000461F0
|
||||
private static bool IsNumeric(object value)
|
||||
{
|
||||
return value is sbyte || value is byte || value is short || value is ushort || value is int || value is uint || value is long || value is ulong || value is float || value is double || value is decimal;
|
||||
}
|
||||
|
||||
// Token: 0x17000B05 RID: 2821
|
||||
// (get) Token: 0x060030AA RID: 12458 RVA: 0x000480CC File Offset: 0x000462CC
|
||||
// (set) Token: 0x060030AB RID: 12459 RVA: 0x000480F8 File Offset: 0x000462F8
|
||||
public static IJsonSerializerStrategy CurrentJsonSerializerStrategy
|
||||
{
|
||||
get
|
||||
{
|
||||
IJsonSerializerStrategy jsonSerializerStrategy;
|
||||
if ((jsonSerializerStrategy = SimpleJson._currentJsonSerializerStrategy) == null)
|
||||
{
|
||||
jsonSerializerStrategy = (SimpleJson._currentJsonSerializerStrategy = SimpleJson.PocoJsonSerializerStrategy);
|
||||
}
|
||||
return jsonSerializerStrategy;
|
||||
}
|
||||
set
|
||||
{
|
||||
SimpleJson._currentJsonSerializerStrategy = value;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x17000B06 RID: 2822
|
||||
// (get) Token: 0x060030AC RID: 12460 RVA: 0x00048104 File Offset: 0x00046304
|
||||
[EditorBrowsable(EditorBrowsableState.Advanced)]
|
||||
public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy
|
||||
{
|
||||
get
|
||||
{
|
||||
PocoJsonSerializerStrategy pocoJsonSerializerStrategy;
|
||||
if ((pocoJsonSerializerStrategy = SimpleJson._pocoJsonSerializerStrategy) == null)
|
||||
{
|
||||
pocoJsonSerializerStrategy = (SimpleJson._pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy());
|
||||
}
|
||||
return pocoJsonSerializerStrategy;
|
||||
}
|
||||
}
|
||||
|
||||
// Token: 0x04000991 RID: 2449
|
||||
private const int TOKEN_NONE = 0;
|
||||
|
||||
// Token: 0x04000992 RID: 2450
|
||||
private const int TOKEN_CURLY_OPEN = 1;
|
||||
|
||||
// Token: 0x04000993 RID: 2451
|
||||
private const int TOKEN_CURLY_CLOSE = 2;
|
||||
|
||||
// Token: 0x04000994 RID: 2452
|
||||
private const int TOKEN_SQUARED_OPEN = 3;
|
||||
|
||||
// Token: 0x04000995 RID: 2453
|
||||
private const int TOKEN_SQUARED_CLOSE = 4;
|
||||
|
||||
// Token: 0x04000996 RID: 2454
|
||||
private const int TOKEN_COLON = 5;
|
||||
|
||||
// Token: 0x04000997 RID: 2455
|
||||
private const int TOKEN_COMMA = 6;
|
||||
|
||||
// Token: 0x04000998 RID: 2456
|
||||
private const int TOKEN_STRING = 7;
|
||||
|
||||
// Token: 0x04000999 RID: 2457
|
||||
private const int TOKEN_NUMBER = 8;
|
||||
|
||||
// Token: 0x0400099A RID: 2458
|
||||
private const int TOKEN_TRUE = 9;
|
||||
|
||||
// Token: 0x0400099B RID: 2459
|
||||
private const int TOKEN_FALSE = 10;
|
||||
|
||||
// Token: 0x0400099C RID: 2460
|
||||
private const int TOKEN_NULL = 11;
|
||||
|
||||
// Token: 0x0400099D RID: 2461
|
||||
private const int BUILDER_CAPACITY = 2000;
|
||||
|
||||
// Token: 0x0400099E RID: 2462
|
||||
private static IJsonSerializerStrategy _currentJsonSerializerStrategy;
|
||||
|
||||
// Token: 0x0400099F RID: 2463
|
||||
private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user