Example #1
0
        private void editToolStripMenuItem_Click(object sender, EventArgs e)
        {
            int            i      = 0;
            string         text   = System.IO.File.ReadAllText("test.json");
            JsonTextReader reader = new JsonTextReader(new StringReader(text));
            JsonColumn     test   = new JsonColumn {
                Property = "", Value = ""
            };

            JsonTreeWrapper masterTree = new JsonTreeWrapper();
            String          jProp = "", jVal = "";
            List <String>   jValList  = new List <String>();
            bool            arrayFlag = false;

            //Parse JSON
            while (reader.Read())
            {
                //If a property type save value
                if (reader.TokenType.ToString() == "PropertyName")
                {
                    //test.Property = reader.Value.ToString();
                    jProp = reader.Value.ToString();
                }
                //if a string value, set it and add to master tree
                else if (reader.TokenType.ToString() == "String" || reader.TokenType.ToString() == "Integer")
                {
                    if (!arrayFlag)
                    {
                        //test.Value = reader.Value.ToString();
                        jVal = reader.Value.ToString();
                        masterTree.addObject(new JsonTreeObject(jProp, jVal));
                        jProp = "";
                        jVal  = "";
                    }
                    else
                    {
                        jValList.Add(reader.Value.ToString());
                    }
                }
                else if (reader.TokenType.ToString() == "StartArray")
                {
                    arrayFlag = true;
                }
                else if (reader.TokenType.ToString() == "EndArray")
                {
                    masterTree.addObject(new JsonTreeObject(jProp, jValList));
                    arrayFlag = false;
                    jValList.Clear();
                }
            }

            masterTree.printTree();
        }
Example #2
0
        private void MenuItem_Click(object sender, RoutedEventArgs e)
        {
            var gridView = new GridView();

            this.listView.View = gridView;
            int i = 0;

            OpenFileDialog openFileDialog1 = new OpenFileDialog();

            //openFileDialog1.InitialDirectory = "c:\\";
            openFileDialog1.ShowDialog();

            string selectedFileName = openFileDialog1.FileName;



            string         text   = System.IO.File.ReadAllText(selectedFileName);
            JsonTextReader reader = new JsonTextReader(new StringReader(text));
            JsonColumn     test   = new JsonColumn {
                Property = "", Value = ""
            };


            String        jProp = "", jVal = "";
            List <String> jValList   = new List <String>();
            bool          arrayFlag  = false;
            bool          ignoreflag = false;

            //Parse JSON
            while (reader.Read())
            {
                if (i != 0 && reader.TokenType.ToString() == "StartObject")
                {
                    ignoreflag = true;
                }
                if (reader.TokenType.ToString() == "EndObject")
                {
                    ignoreflag = false;
                }
                if (ignoreflag == false)
                {
                    //If a property type save value
                    if (reader.TokenType.ToString() == "PropertyName")
                    {
                        //test.Property = reader.Value.ToString();
                        jProp = reader.Value.ToString();
                    }
                    //if a string value, set it and add to master tree
                    else if (reader.TokenType.ToString() == "String" || reader.TokenType.ToString() == "Integer")
                    {
                        if (!arrayFlag)
                        {
                            //test.Value = reader.Value.ToString();
                            jVal = reader.Value.ToString();
                            masterTree.addObject(new JsonTreeObject(jProp, jVal));
                            jProp = "";
                            jVal  = "";
                        }
                        else
                        {
                            jValList.Add(reader.Value.ToString());
                        }
                    }
                    else if (reader.TokenType.ToString() == "StartArray")
                    {
                        arrayFlag = true;
                    }
                    else if (reader.TokenType.ToString() == "EndArray")
                    {
                        masterTree.addObject(new JsonTreeObject(jProp, jValList));
                        arrayFlag = false;
                        jValList.Clear();
                    }
                }

                i++;
            }

            masterTree.printTree();



            gridView.Columns.Add(new GridViewColumn
            {
                Header = "Property",
                DisplayMemberBinding = new Binding("Property")
            });

            gridView.Columns.Add(new GridViewColumn
            {
                Header = "Value",
                DisplayMemberBinding = new Binding("Value")
            });


            foreach (JsonTreeObject j in masterTree.data)
            {
                if (j.isArray)
                {
                    this.listView.Items.Add((new JsonColumn {
                        Property = j.property, Value = "Array"
                    }));
                }
                else
                {
                    this.listView.Items.Add((new JsonColumn {
                        Property = j.property, Value = j.values[0]
                    }));
                }
            }
            this.listView.Items.Add((new JsonColumn {
                Property = "other", Value = "Object"
            }));
        }