Пример #1
0
        public static object ReadValue(System.Text.Json.JsonElement elem)
        {
            if (elem.ValueKind == System.Text.Json.JsonValueKind.Object)
            {
                KeyValue[] vals = elem.EnumerateObject().ToList().SelectMany(v => DeSerializeOne(v)).ToArray();
                KeyValues  valv = new KeyValues(); valv.AddRange(vals);
                return(valv);
            }
            else if (elem.ValueKind == System.Text.Json.JsonValueKind.Array)
            {
                // déja géré par DeSerializeOne
                //KeyValue[] vals = elem.Value.EnumerateArray().ToList().Select(v => DeSerializeOne(v)).ToArray();
                //KeyValues valv = new KeyValues(); valv.AddRange(vals);
                //retour = new KeyValue(realname, valv);
                return(null);
            }
            else if (elem.ValueKind == System.Text.Json.JsonValueKind.Null || elem.ValueKind == System.Text.Json.JsonValueKind.Undefined)
            {
                return(null);
            }
            else if (elem.ValueKind == System.Text.Json.JsonValueKind.False)
            {
                return(false);
            }
            else if (elem.ValueKind == System.Text.Json.JsonValueKind.True)
            {
                return(true);
            }
            else if (elem.ValueKind == System.Text.Json.JsonValueKind.Number)
            {
                int i = 0;
                if (elem.TryGetInt32(out i))
                {
                    return(i);
                }

                long li = 0;
                if (elem.TryGetInt64(out li))
                {
                    return(li);
                }

                double di = 0;
                if (elem.TryGetDouble(out di))
                {
                    return(di);
                }

                return(elem.GetRawText()); // !!!
            }
            else if (elem.ValueKind == System.Text.Json.JsonValueKind.String)
            {
                return(elem.GetString());
            }
            else
            {
                return(elem.GetRawText());
            }
        }
Пример #2
0
        public static _JsonObject CreateFrom(JSONELEMENT dict)
        {
            if (dict.ValueKind != JsonValueKind.Object)
            {
                throw new ArgumentException("Must be JsonValueKind.Object", nameof(dict));
            }

            JSONPROPERTY convert(JsonProperty property)
            {
                var value = _JsonStaticUtils.Deserialize(property.Value);

                return(new JSONPROPERTY(property.Name, value));
            }

            using (var entries = dict.EnumerateObject())
            {
                return(new _JsonObject(dict.EnumerateObject().Select(convert)));
            }
        }
Пример #3
0
        internal JsonDictionary(JSONELEMENT element)
        {
            if (element.ValueKind != JsonValueKind.Object)
            {
                throw new ArgumentException("Must be JsonValueKind.Object", nameof(element));
            }

            foreach (var item in element.EnumerateObject())
            {
                this[item.Name] = JsonValue.DeepClone(item.Value);
            }
        }