Ejemplo n.º 1
0
 void SerializeArray(IRTSList anArray, bool list2dict, bool perfectPrint)
 {
     if (list2dict)
     {
         if (perfectPrint)
         {
             builder.Append(indent);
         }
         builder.Append("{");
         indent = indent + "    ";
         int i = 0;
         foreach (object obj in anArray)
         {
             if (i > 0)
             {
                 builder.Append(',');
             }
             if (perfectPrint)
             {
                 builder.AppendLine();
                 builder.Append(indent);
             }
             builder.Append("\"");
             builder.Append(RTSListUtil.ToKey(anArray.GetPriority(i)));
             builder.Append("\":");
             SerializeValue(false, obj, list2dict, perfectPrint);
             i++;
         }
         indent = indent.Substring(4);
         if (perfectPrint)
         {
             builder.AppendLine();
             builder.Append(indent);
         }
         builder.Append("}");
     }
     else
     {
         if (perfectPrint)
         {
             builder.Append(indent);
         }
         builder.Append('[');
         indent = indent + "    ";
         bool first = true;
         foreach (object obj in anArray)
         {
             if (!first)
             {
                 builder.Append(',');
             }
             if (perfectPrint)
             {
                 builder.AppendLine();
                 builder.Append(indent);
             }
             SerializeValue(false, obj, list2dict, perfectPrint);
             first = false;
         }
         indent = indent.Substring(4);
         if (perfectPrint)
         {
             builder.AppendLine();
             builder.Append(indent);
         }
         builder.Append(']');
     }
 }
Ejemplo n.º 2
0
            bool ParseObjectArray(IRTSList array, Type type)
            {
                switch (NextToken)
                {
                case TOKEN.CURLY_OPEN:
                    json.Read();
                    while (true)
                    {
                        switch (NextToken)
                        {
                        case TOKEN.NONE:
                            return(false);

                        case TOKEN.COMMA:
                            continue;

                        case TOKEN.CURLY_CLOSE:
                            return(true);
                        }
                        string name = ParseString(type_string);
                        if (name == null)
                        {
                            return(false);
                        }
                        if (NextToken != TOKEN.COLON)
                        {
                            return(false);
                        }
                        json.Read();
                        object value = ParseNext(type);
                        if (!double.IsNaN(RTSListUtil.FromKey(name)))
                        {
                            double p = double.Parse(name.Substring(1, name.Length - 1));
                            if (array != null)
                            {
                                array.RawAdd(p, value);
                            }
                        }
                        else
                        {
                            if (array != null)
                            {
                                array.Add(value);
                            }
                        }
                    }

                case TOKEN.SQUARED_OPEN:
                    json.Read();
                    while (true)
                    {
                        switch (NextToken)
                        {
                        case TOKEN.NONE:
                            return(false);

                        case TOKEN.COMMA:
                            continue;

                        case TOKEN.SQUARED_CLOSE:
                            return(true);

                        default:
                            object value = ParseNext(type);
                            if (array != null)
                            {
                                array.Add(value);
                            }
                            break;
                        }
                    }
                }
                return(false);
            }