Пример #1
0
        public static dynamic GetDynamicJsonObject(Stream xmlStream)
        {
            var xmlDoc = XDocument.Load(xmlStream);

            return(JsonObject.GetDynamicJsonObject(XmlToJObject(xmlDoc.Root)));
        }
Пример #2
0
        public override bool TryGetMember(GetMemberBinder binder, out object result)
        {
            result = null;

            if (_object is JArray)
            {
                JArray jArray = _object as JArray;
                switch (binder.Name)
                {
                    case "Length":
                    case "Count": result = jArray.Count; break;
                    case "ToList": result = (Func<List<string>>)(() => jArray.Values().Select(x => x.ToString()).ToList()); break;
                    case "ToArray": result = (Func<string[]>)(() => jArray.Values().Select(x => x.ToString()).ToArray()); break;
                }

                return true;
            }

            JObject jObject = _object as JObject;
            object obj = jObject.SelectToken(binder.Name);
            if (obj == null) return true;

            if (obj is JValue)
                result = GetValue(obj);
            else
                result = new JsonObject(obj);

            return true;
        }
Пример #3
0
        public static dynamic GetDynamicJsonObject(string xmlString)
        {
            var xmlDoc = XDocument.Load(new StringReader(xmlString));

            return(JsonObject.GetDynamicJsonObject(XmlToJObject(xmlDoc.Root)));
        }