Пример #1
0
        public string GetValueWithKey(string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                Debug.LogError("Invalid key.");
                return(string.Empty);
            }

            JsonValueBase valueBase = null;
            var           result    = mValues.TryGetValue(key, out valueBase);

            if (!result)
            {
                return(null);
            }

            if (valueBase.ValueType == JsonValueType.Object || valueBase.ValueType == JsonValueType.Array)
            {
                return(null);
            }

            var realValue = (JsonValue)valueBase;

            return(realValue.GetValue());
        }
Пример #2
0
        public JsonArray GetArrayWithKey(string key)
        {
            JsonValueBase valueBase = null;
            var           result    = mValues.TryGetValue(key, out valueBase);

            if (!result)
            {
                return(null);
            }

            if (valueBase.ValueType != JsonValueType.Array)
            {
                return(null);
            }

            return((JsonArray)valueBase);
        }
Пример #3
0
        public JsonObject GetObjectWithKey(ref string key)
        {
            if (string.IsNullOrEmpty(key))
            {
                Debug.LogError("Invalid key.");
                return(null);
            }

            JsonValueBase valueBase = null;
            var           result    = mValues.TryGetValue(key, out valueBase);

            if (!result)
            {
                return(null);
            }

            if (valueBase.ValueType != JsonValueType.Object)
            {
                return(null);
            }

            return((JsonObject)valueBase);
        }
Пример #4
0
        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);
        }