private void pageSelectionChanged(object sender, EventArgs e) { int temp = 0; if (inputFile != null) { if (jdata.Questions != null && jdata.Responses != null && jdata.Contacts != null) { if (pagesListBox.SelectedItem.ToString() == "Questions") { temp = 0; pageTextBox.Text = ""; jdata = JSONHelper.ReadData(inputFile); foreach (string quest in jdata.Questions) { pageTextBox.AppendText(quest + "\n"); pageTextBox.AppendText("\n"); } } else if (pagesListBox.SelectedItem.ToString() == "Responses") { temp = 0; pageTextBox.Text = ""; jdata = JSONHelper.ReadData(inputFile); foreach (string resp in jdata.Responses) { pageTextBox.AppendText(resp + "\n"); pageTextBox.AppendText("\n"); } } else if (pagesListBox.SelectedItem.ToString() == "Contacts") { temp = 0; pageTextBox.Text = ""; jdata = JSONHelper.ReadData(inputFile); foreach (string con in jdata.Contacts) { pageTextBox.AppendText(con + "\n"); temp++; if (temp % 2 == 0) { pageTextBox.AppendText("\n"); } } } } } else { MessageBox.Show("Please select a file to open first."); } }
private void openMenuItemClick(object sender, EventArgs e) { OpenFileDialog ofd = new OpenFileDialog(); ofd.InitialDirectory = "C:\\"; ofd.Filter = "JSON files (*.json)|*.json|All files (*.*)|*.*"; ofd.FilterIndex = 0; ofd.RestoreDirectory = true; if (ofd.ShowDialog() == DialogResult.OK) { inputFile = ofd.FileName; fileLoaded = true; } Console.Error.WriteLine("Opened file: {0}", inputFile); if (inputFile != null) { fileLoaded = true; jdata = JSONHelper.ReadData(inputFile); if (jdata.Questions != null && jdata.Responses != null && jdata.Error != null && jdata.Contacts != null) { validFile = true; validObject = true; temp = jdata; pagesListBox.SelectedItem = "Questions"; } else { MessageBox.Show("The selected file is empty or\n not formatted correctly."); inputFile = null; jdata = null; validFile = false; validObject = false; } } }
public static void WriteData(string outFilename, JData jData) { StringBuilder sb = new StringBuilder(); StringWriter sw = new StringWriter(sb); try { using (JsonWriter jWriter = new JsonTextWriter(sw)) { jWriter.Formatting = Formatting.Indented; jWriter.WriteStartObject(); /* START writing properties to file */ // write questions jWriter.WritePropertyName("Questions"); jWriter.WriteStartArray(); foreach (string q in jData.Questions) { if (String.IsNullOrWhiteSpace(q) != true) { jWriter.WriteValue(q); } } jWriter.WriteEndArray(); // write responses jWriter.WritePropertyName("Responses"); jWriter.WriteStartArray(); foreach (string r in jData.Responses) { if (String.IsNullOrWhiteSpace(r) != true) { jWriter.WriteValue(r); } } jWriter.WriteEndArray(); // write error messages jWriter.WritePropertyName("Error"); jWriter.WriteStartArray(); foreach (string e in jData.Error) { if (String.IsNullOrWhiteSpace(e) != true) { jWriter.WriteValue(e); } } jWriter.WriteEndArray(); // write contacts jWriter.WritePropertyName("Contacts"); jWriter.WriteStartArray(); int tempContacts = 0; foreach (string c in jData.Contacts) { if (String.IsNullOrWhiteSpace(c) != true) { if (tempContacts % 2 == 0) { jWriter.WriteStartObject(); jWriter.WritePropertyName("text"); jWriter.WriteValue(c); } else if (tempContacts % 2 != 0) { jWriter.WritePropertyName("phone"); jWriter.WriteValue(c); jWriter.WriteEndObject(); } tempContacts++; } } jWriter.WriteEndArray(); /* END writing properties to file */ jWriter.WriteEndObject(); } } catch (Exception e) { Console.Error.WriteLine(e.Message); } // write data to output file File.WriteAllText(outFilename, sb.ToString()); }
public static JData ReadData(string filename) { JData jData = new JData(); List <string> jsonItems = new List <string>(); int counter = 1; try { using (JsonTextReader jr = new JsonTextReader(new StreamReader(filename))) { while (jr.Read()) { if (jr.Value != null) { if (jr.TokenType == JsonToken.String) { jsonItems.Add(jr.Value.ToString()); } if (jr.TokenType == JsonToken.PropertyName) { if (jr.Value.ToString() == "Responses") { jData.Questions = jsonItems.ToArray(); jsonItems = null; jsonItems = new List <string>(); } else if (jr.Value.ToString() == "Error") { jData.Responses = jsonItems.ToArray(); jsonItems = null; jsonItems = new List <string>(); } else if (jr.Value.ToString() == "Contacts") { if (counter == 1) { jData.Error = jsonItems.ToArray(); jsonItems = null; jsonItems = new List <string>(); counter++; } } } /* This is required, because there is no other way to tell * when the contacts section starts */ if (counter == 2) { // add items to contacts jData.Contacts = jsonItems.ToArray(); } } } } } catch (Exception e) { Console.Error.WriteLine("Could not read file."); Console.Error.WriteLine(e.Message); } return(jData); }