Пример #1
0
 public JProperty(string name, object content)
 {
     this._content = new JPropertyList();
     ValidationUtils.ArgumentNotNull(name, "name");
     this._name = name;
     this.Value = base.IsMultiContent(content) ? new JArray(content) : JContainer.CreateFromContent(content);
 }
Пример #2
0
        public JProperty(string name, object content)
        {
            JToken jArrays;

            ValidationUtils.ArgumentNotNull(name, "name");
            this._name = name;
            if (base.IsMultiContent(content))
            {
                jArrays = new JArray(content);
            }
            else
            {
                jArrays = JContainer.CreateFromContent(content);
            }
            this.Value = jArrays;
        }
Пример #3
0
 internal void AddInternal(int index, object content, bool skipParentCheck)
 {
     if (!this.IsMultiContent(content))
     {
         this.InsertItem(index, JContainer.CreateFromContent(content), skipParentCheck);
     }
     else
     {
         int num = index;
         foreach (object obj in (IEnumerable)content)
         {
             this.AddInternal(num, obj, skipParentCheck);
             num++;
         }
     }
 }
Пример #4
0
 internal void AddInternal(int index, object content, bool skipParentCheck)
 {
     if (this.IsMultiContent(content))
     {
         IEnumerable enumerable = (IEnumerable)content;
         int         index1     = index;
         foreach (object content1 in enumerable)
         {
             this.AddInternal(index1, content1, skipParentCheck);
             ++index1;
         }
     }
     else
     {
         JToken fromContent = JContainer.CreateFromContent(content);
         this.InsertItem(index, fromContent, skipParentCheck);
     }
 }
Пример #5
0
        public JProperty(string name, object content)
        {
            Class6.yDnXvgqzyB5jw();
            this._content = new JProperty.JPropertyList();
            base();
            JToken jArrays;

            ValidationUtils.ArgumentNotNull(name, "name");
            this._name = name;
            if (base.IsMultiContent(content))
            {
                jArrays = new JArray(content);
            }
            else
            {
                jArrays = JContainer.CreateFromContent(content);
            }
            this.Value = jArrays;
        }
Пример #6
0
        internal void AddInternal(int index, object content, bool skipParentCheck)
        {
            if (this.IsMultiContent(content))
            {
                IEnumerable enumerable = (IEnumerable)content;
                int         num        = index;
                using (IEnumerator enumerator = enumerable.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        object content2 = enumerator.Current;
                        this.AddInternal(num, content2, skipParentCheck);
                        num++;
                    }
                    return;
                }
            }
            JToken item = JContainer.CreateFromContent(content);

            this.InsertItem(index, item, skipParentCheck);
        }
Пример #7
0
        // Token: 0x06001298 RID: 4760 RVA: 0x00064E40 File Offset: 0x00063040
        internal static void MergeEnumerableContent(JContainer target, IEnumerable content, [Nullable(2)] JsonMergeSettings settings)
        {
            switch ((settings != null) ? settings.MergeArrayHandling : MergeArrayHandling.Concat)
            {
            case MergeArrayHandling.Concat:
                using (IEnumerator enumerator = content.GetEnumerator())
                {
                    while (enumerator.MoveNext())
                    {
                        object obj      = enumerator.Current;
                        JToken content2 = (JToken)obj;
                        target.Add(content2);
                    }
                    return;
                }
                break;

            case MergeArrayHandling.Union:
                break;

            case MergeArrayHandling.Replace:
                goto IL_CB;

            case MergeArrayHandling.Merge:
                goto IL_11A;

            default:
                goto IL_1CC;
            }
            HashSet <JToken> hashSet = new HashSet <JToken>(target, JToken.EqualityComparer);

            using (IEnumerator enumerator = content.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    object obj2   = enumerator.Current;
                    JToken jtoken = (JToken)obj2;
                    if (hashSet.Add(jtoken))
                    {
                        target.Add(jtoken);
                    }
                }
                return;
            }
IL_CB:
            if (target == content)
            {
                return;
            }
            target.ClearItems();
            using (IEnumerator enumerator = content.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    object obj3     = enumerator.Current;
                    JToken content3 = (JToken)obj3;
                    target.Add(content3);
                }
                return;
            }
IL_11A:
            int num = 0;

            using (IEnumerator enumerator = content.GetEnumerator())
            {
                while (enumerator.MoveNext())
                {
                    object obj4 = enumerator.Current;
                    if (num < target.Count)
                    {
                        JContainer jcontainer = target[num] as JContainer;
                        if (jcontainer != null)
                        {
                            jcontainer.Merge(obj4, settings);
                        }
                        else if (obj4 != null)
                        {
                            JToken jtoken2 = JContainer.CreateFromContent(obj4);
                            if (jtoken2.Type != JTokenType.Null)
                            {
                                target[num] = jtoken2;
                            }
                        }
                    }
                    else
                    {
                        target.Add(obj4);
                    }
                    num++;
                }
                return;
            }
IL_1CC:
            throw new ArgumentOutOfRangeException("settings", "Unexpected merge array handling when merging JSON.");
        }
Пример #8
0
 // Token: 0x06001585 RID: 5509 RVA: 0x0006C384 File Offset: 0x0006A584
 public JProperty(string name, [Nullable(2)] object content)
 {
     ValidationUtils.ArgumentNotNull(name, "name");
     this._name = name;
     this.Value = (base.IsMultiContent(content) ? new JArray(content) : JContainer.CreateFromContent(content));
 }
Пример #9
0
 /// <summary>
 /// Initializes a new instance of the <see cref="T:Newtonsoft.Json.Linq.JProperty" /> class.
 /// </summary>
 /// <param name="name">The property name.</param>
 /// <param name="content">The property content.</param>
 public JProperty(string name, object content)
 {
     ValidationUtils.ArgumentNotNull((object)name, nameof(name));
     this._name = name;
     this.Value = this.IsMultiContent(content) ? (JToken) new JArray(content) : JContainer.CreateFromContent(content);
 }
Пример #10
0
        internal static void MergeEnumerableContent(JContainer target, IEnumerable content, JsonMergeSettings settings)
        {
            IEnumerator enumerator;
            IDisposable disposable;

            switch (settings.MergeArrayHandling)
            {
            case MergeArrayHandling.Concat:
            {
                enumerator = content.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        target.Add((JToken)enumerator.Current);
                    }
                    break;
                }
                finally
                {
                    disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                break;
            }

            case MergeArrayHandling.Union:
            {
                HashSet <JToken> jTokens = new HashSet <JToken>(target, JToken.EqualityComparer);
                enumerator = content.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        JToken current = (JToken)enumerator.Current;
                        if (!jTokens.Add(current))
                        {
                            continue;
                        }
                        target.Add(current);
                    }
                    break;
                }
                finally
                {
                    disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                break;
            }

            case MergeArrayHandling.Replace:
            {
                target.ClearItems();
                enumerator = content.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        target.Add((JToken)enumerator.Current);
                    }
                    break;
                }
                finally
                {
                    disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                break;
            }

            case MergeArrayHandling.Merge:
            {
                int num = 0;
                enumerator = content.GetEnumerator();
                try
                {
                    while (enumerator.MoveNext())
                    {
                        object obj = enumerator.Current;
                        if (num >= target.Count)
                        {
                            target.Add(obj);
                        }
                        else
                        {
                            JContainer item = target[num] as JContainer;
                            if (item != null)
                            {
                                item.Merge(obj, settings);
                            }
                            else if (obj != null)
                            {
                                JToken jTokens1 = JContainer.CreateFromContent(obj);
                                if (jTokens1.Type != JTokenType.Null)
                                {
                                    target[num] = jTokens1;
                                }
                            }
                        }
                        num++;
                    }
                    break;
                }
                finally
                {
                    disposable = enumerator as IDisposable;
                    if (disposable != null)
                    {
                        disposable.Dispose();
                    }
                }
                break;
            }

            default:
            {
                throw new ArgumentOutOfRangeException("settings", "Unexpected merge array handling when merging JSON.");
            }
            }
        }
Пример #11
0
        internal static void MergeEnumerableContent(
            JContainer target,
            IEnumerable content,
            JsonMergeSettings settings)
        {
            switch (settings.MergeArrayHandling)
            {
            case MergeArrayHandling.Concat:
                IEnumerator enumerator1 = content.GetEnumerator();
                try
                {
                    while (enumerator1.MoveNext())
                    {
                        JToken current = (JToken)enumerator1.Current;
                        target.Add((object)current);
                    }
                    break;
                }
                finally
                {
                    if (enumerator1 is IDisposable disposable)
                    {
                        disposable.Dispose();
                    }
                }

            case MergeArrayHandling.Union:
                HashSet <JToken> jtokenSet   = new HashSet <JToken>((IEnumerable <JToken>)target, (IEqualityComparer <JToken>)JToken.EqualityComparer);
                IEnumerator      enumerator2 = content.GetEnumerator();
                try
                {
                    while (enumerator2.MoveNext())
                    {
                        JToken current = (JToken)enumerator2.Current;
                        if (jtokenSet.Add(current))
                        {
                            target.Add((object)current);
                        }
                    }
                    break;
                }
                finally
                {
                    if (enumerator2 is IDisposable disposable)
                    {
                        disposable.Dispose();
                    }
                }

            case MergeArrayHandling.Replace:
                target.ClearItems();
                IEnumerator enumerator3 = content.GetEnumerator();
                try
                {
                    while (enumerator3.MoveNext())
                    {
                        JToken current = (JToken)enumerator3.Current;
                        target.Add((object)current);
                    }
                    break;
                }
                finally
                {
                    if (enumerator3 is IDisposable disposable)
                    {
                        disposable.Dispose();
                    }
                }

            case MergeArrayHandling.Merge:
                int         num         = 0;
                IEnumerator enumerator4 = content.GetEnumerator();
                try
                {
                    while (enumerator4.MoveNext())
                    {
                        object current = enumerator4.Current;
                        if (num < target.Count)
                        {
                            if (target[(object)num] is JContainer jcontainer)
                            {
                                jcontainer.Merge(current, settings);
                            }
                            else if (current != null)
                            {
                                JToken fromContent = JContainer.CreateFromContent(current);
                                if (fromContent.Type != JTokenType.Null)
                                {
                                    target[(object)num] = fromContent;
                                }
                            }
                        }
                        else
                        {
                            target.Add(current);
                        }
                        ++num;
                    }
                    break;
                }
                finally
                {
                    if (enumerator4 is IDisposable disposable)
                    {
                        disposable.Dispose();
                    }
                }

            default:
                throw new ArgumentOutOfRangeException(nameof(settings), "Unexpected merge array handling when merging JSON.");
            }
        }