Exemplo n.º 1
0
        void jsonReadArray(JsonReader reader, ArrayList arr)
        {
            while (reader.Read())
            {
                if (reader.TokenType == JsonToken.StartObject)
                {
                    VTDictionary d = new VTDictionary();
                    jsonReadDictionary(reader, d);

                    arr.Add(d);
                }
                else if (reader.TokenType == JsonToken.EndArray)
                {
                    break;
                }
                else if (reader.TokenType == JsonToken.StartArray)
                {
                    ArrayList arrSub = new ArrayList();
                    jsonReadArray(reader, arrSub);
                    arr.Add(arrSub);
                }
                else if (reader.TokenType == JsonToken.Comment)
                {
                    continue;
                }
                else if (reader.TokenType == JsonToken.Float)
                {
                    //  double
                    arr.Add(reader.Value);
                }
                else if (reader.TokenType == JsonToken.Integer)
                {
                    //  long
                    arr.Add(reader.Value);
                }
                else if (reader.TokenType == JsonToken.Boolean)
                {
                    arr.Add(reader.Value);
                }
                else
                {
                    arr.Add(reader.Value.ToString());
                }
            }
        }
Exemplo n.º 2
0
 void jsonWriteDictionary(JsonWriter writer, VTDictionary dict)
 {
     writer.WriteStartObject();
     foreach (KeyValuePair <string, object> entry in dict.dict)
     {
         if (entry.Value.GetType().Equals(typeof(VTDictionary)))
         {
             writer.WritePropertyName(entry.Key);
             jsonWriteDictionary(writer, (VTDictionary)entry.Value);
         }
         else if (entry.Value.GetType().Equals(typeof(ArrayList)))
         {
             writer.WritePropertyName(entry.Key);
             jsonWriteArray(writer, (ArrayList)entry.Value);
         }
         else
         {
             writer.WritePropertyName(entry.Key);
             writer.WriteValue(entry.Value);
         }
     }
     writer.WriteEndObject();
 }
Exemplo n.º 3
0
        static public void test()
        {
            String json = "{"

                          + "'TEST_Long':1500222333444,"
                          + "'TEST_Double':1500222333444.12,"
                          + "'TEST_Int':1500,"
                          + "'TEST_Float':44.12,"
                          + "'CPU': 'Intel',"
                          + "'PSU': '500W',"
                          + "'Price':1500222333444,"
                          + "'Computer': {'Type': 1, 'Price': 2000.5, 'Name': 'Dell 6600', 'IsLaptop': true},"
                          + "'Drives': ["
                          + "'DVD read/writer'"
                          + "/*(broken)*/,"
                          + "'500 gigabyte hard drive',"
                          + "'200 gigabyte hard drive'"
                          + "]"
                          + "}";
            VTDictionary d = new VTDictionary(json);
            String       s = d.toJson();

            System.Console.Out.Write(s);
        }
Exemplo n.º 4
0
        void jsonReadDictionary(JsonReader reader, VTDictionary dict)
        {
            while (reader.Read())
            {
                if (reader.TokenType == JsonToken.EndObject)
                {
                    break;
                }

                if (reader.TokenType == JsonToken.PropertyName)
                {
                    String name = reader.Value.ToString();
                    reader.Read();

                    //  object can be: dictionary, array, or primitive types

                    //  array
                    if (reader.TokenType == JsonToken.StartArray)
                    {
                        ArrayList arr = new ArrayList();
                        jsonReadArray(reader, arr);

                        dict.setValue(name, arr);
                    }
                    //  dictionary
                    else if (reader.TokenType == JsonToken.StartObject)
                    {
                        VTDictionary d = new VTDictionary();
                        jsonReadDictionary(reader, d);

                        setValue(name, d);
                    }
                    else if (reader.TokenType == JsonToken.Comment)
                    {
                        continue;
                    }
                    //  primitive types
                    else if (reader.TokenType == JsonToken.String)
                    {
                        dict.setValueString(name, reader.Value.ToString());
                    }
                    else if (reader.TokenType == JsonToken.Float)
                    {
                        //  double
                        dict.setValue(name, reader.Value);
                    }
                    else if (reader.TokenType == JsonToken.Integer)
                    {
                        //  long
                        dict.setValue(name, reader.Value);
                    }
                    else if (reader.TokenType == JsonToken.Boolean)
                    {
                        dict.setValueBool(name, (bool)reader.Value);
                    }
                    else
                    {
                        dict.setValue(name, reader.Value.ToString());
                    }
                }
            }
        }