public ArrayList parseLoginJSONString(string JSONString) { ArrayList ArrayToReturn = new ArrayList(); ArrayList DeserializedJSONList; MainModel.JSONHeader header = parseJSONHeader(JSONString); MainModel.LoginItem loginItem = new MainModel.LoginItem("", ""); string temp2; char[] temp; temp = JSONString.ToCharArray(); temp[0] = '['; temp[temp.Length - 1] = ']'; temp2 = ""; foreach (char c in temp) { temp2 += c; } DeserializedJSONList = JsonConvert.DeserializeObject <ArrayList>(temp2); if (DeserializedJSONList != null) { foreach (object item in DeserializedJSONList) { foreach (JProperty jobj in (IList)item) { switch (jobj.Name) { case "loginname": loginItem.loginname = jobj.Value.ToString(); break; case "password": loginItem.password = jobj.Value.ToString(); break; } } } ArrayToReturn.Add(header); ArrayToReturn.Add(loginItem); return(ArrayToReturn); } else { return(null); } }
public ArrayList parseDataJSONString(string JSONString) { ArrayList ArrayToReturn = new ArrayList(); ArrayList DeserializedJSONList; MainModel.JSONHeader header = parseJSONHeader(JSONString); MainModel.JSONItem jsonitem; string temp2; char[] temp; temp = JSONString.ToCharArray(); temp[0] = '['; temp[temp.Length - 1] = ']'; temp2 = ""; foreach (char c in temp) { temp2 += c; } DeserializedJSONList = JsonConvert.DeserializeObject <ArrayList>(temp2); if (DeserializedJSONList != null) { foreach (object item in DeserializedJSONList) { if (item != DeserializedJSONList[0]) { jsonitem = new MainModel.JSONItem(DateTime.Now, '0', 0, null); jsonitem.meeting = new List <MainModel.MeetingObject>(); foreach (JProperty jobj in (IList)item) { switch (jobj.Name) { case "date": try { jsonitem.date = DateTime.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Datum-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "lateness": try { jsonitem.lateness = int.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Format für die Verspätungen ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "initial": try { jsonitem.initial = char.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Format für die Anwesenheit ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "meeting": bool isNull = false; foreach (object array in jobj) { int i = 0; if (array.GetType() == typeof(JValue)) { if (((JValue)array).Value == null) { isNull = true; } else { foreach (JObject arrayItem in (JValue)array) { foreach (JProperty innerItem in (IList)arrayItem) { switch (innerItem.Name) { case "time": try { jsonitem.meeting.ElementAt(i).time = DateTime.Parse(innerItem.Value.ToString()); } catch (FormatException) { MessageBox.Show("Datum-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "sender": jsonitem.meeting.ElementAt(i).sender = innerItem.Value.ToString(); break; case "subject": jsonitem.meeting.ElementAt(i).subject = innerItem.Value.ToString(); break; case "info": jsonitem.meeting.ElementAt(i).info = innerItem.Value.ToString(); break; } } i++; } } } else { if (((JArray)array).Count < 1) { isNull = true; } else { foreach (JObject arrayItem in (JArray)array) { jsonitem.meeting.Add(new MainModel.MeetingObject(DateTime.Now, "", "", "")); foreach (JProperty innerItem in (IList)arrayItem) { switch (innerItem.Name) { case "time": try { jsonitem.meeting.ElementAt(i).time = DateTime.Parse(innerItem.Value.ToString()); } catch (FormatException) { MessageBox.Show("Datum-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "sender": jsonitem.meeting.ElementAt(i).sender = innerItem.Value.ToString(); break; case "subject": jsonitem.meeting.ElementAt(i).subject = innerItem.Value.ToString(); break; case "info": jsonitem.meeting.ElementAt(i).info = innerItem.Value.ToString(); break; } } i++; } } } } if (isNull) { jsonitem.meeting = null; } break; } } ArrayToReturn.Add(jsonitem); } else { ArrayToReturn.Add(header); } } return(ArrayToReturn); } else { return(null); } }
private MainModel.JSONHeader parseJSONHeader(string JSONString) { ArrayList DeserializedJSONList; MainModel.JSONHeader header = new MainModel.JSONHeader(new byte[] { 0, 0, 0, 0 }, 0, MainModel.TransmissionReason.ReceiveAccountData); string temp2; char[] temp; temp = JSONString.ToCharArray(); temp[0] = '['; temp[temp.Length - 1] = ']'; temp2 = ""; foreach (char c in temp) { temp2 += c; } DeserializedJSONList = JsonConvert.DeserializeObject <ArrayList>(temp2); if (DeserializedJSONList != null) { foreach (object item in DeserializedJSONList) { foreach (JProperty jobj in (IList)item) { switch (jobj.Name) { case "sender": try { IPAddress.Parse(jobj.Value.ToString()); header.sender = jobj.Value.ToString(); } catch (FormatException) { MessageBox.Show("IP-Format ist falsch!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "port": try { header.port = short.Parse(jobj.Value.ToString()); } catch (FormatException) { MessageBox.Show("Der Port konnte nicht ermittelt werden!", "Parsing-Fehler", MessageBoxButton.OK, MessageBoxImage.Error); } break; case "reason": header.reason = jobj.Value.ToString() == "Account" ? "Account" : "ReceiveData"; break; } } } return(header); } else { return(null); } }