public void LoadHashes() { mHashes.Clear(); var temp = string.Format("{0}/hashes.hsh", mOutPath); if (!File.Exists(temp)) { return; } var data = File.ReadAllText(temp); if (string.IsNullOrEmpty(data)) { Debug.LogError("Invalid data."); return; } var json = new JsonUnity(data); if (json == null) { Debug.LogError("Failed to create a json."); return; } temp = json.GetError(); if (!string.IsNullOrEmpty(temp)) { Debug.LogError(temp); return; } var key = "Hashes"; var array = json.GetArrayWithKey(key); if (array == null) { Debug.LogError("Failed to get the Hashes."); return; } var subKey = string.Empty; var keyString = "key"; var subKeyString = "subKey"; var fileKeyString = "Files"; var hashKeyString = "Hash"; var hashstring = string.Empty; JsonObject obj = null; JsonObject subObj = null; JsonArray sub = null; FileHash file = null; HashInfo hash = null; Dictionary <string, FileHash> files = new Dictionary <string, FileHash>(); for (var i = default(int); i < array.GetCount(); ++i) { files.Clear(); obj = array.GetObjectWithIndex(i); key = obj.GetValueWithKey(keyString); sub = obj.GetArrayWithKey(fileKeyString); for (var j = default(int); j < sub.GetCount(); ++j) { subObj = sub.GetObjectWithIndex(j); subKey = subObj.GetValueWithKey(subKeyString); hashstring = subObj.GetValueWithKey(hashKeyString); file = new FileHash(subKey, hashstring); files.Add(subKey, file); Debug.Log(subKey); } hash = new HashInfo(HashInfo.NOT_CHANGED, key, files); mHashes.Add(key, hash); } Debug.Log("Load hashes complete."); }
public static JsonValueBase ParseValueFromReader(ref JsonReader reader) { if (reader == null) { Debug.LogError("Invalid json reader."); return(null); } reader.Read(); JsonValueBase valueBase = null; switch (reader.Token) { case JsonToken.ObjectStart: { JsonObject obj = new JsonObject(); obj.Parse(ref reader); valueBase = obj; } break; case JsonToken.ArrayStart: { JsonArray array = new JsonArray(); array.Parse(ref reader); valueBase = array; } break; case JsonToken.Boolean: { JsonValue value = new JsonValue(JsonValueType.Boolean); value.SetValue(reader.Value.ToString()); valueBase = value; } break; case JsonToken.Double: { JsonValue value = new JsonValue(JsonValueType.Double); value.SetValue(reader.Value.ToString()); valueBase = value; } break; case JsonToken.Int: { JsonValue value = new JsonValue(JsonValueType.Int); value.SetValue(reader.Value.ToString()); valueBase = value; } break; case JsonToken.Long: { JsonValue value = new JsonValue(JsonValueType.Long); value.SetValue(reader.Value.ToString()); valueBase = value; } break; case JsonToken.None: { JsonValue value = new JsonValue(JsonValueType.None); value.SetValue(string.Empty); valueBase = value; } break; case JsonToken.Null: { JsonValue value = new JsonValue(JsonValueType.Null); value.SetValue(string.Empty); valueBase = value; } break; case JsonToken.String: { JsonValue value = new JsonValue(JsonValueType.String); value.SetValue(reader.Value.ToString()); valueBase = value; } break; case JsonToken.ArrayEnd: { valueBase = null; } break; } return(valueBase); }