public static ResourceReference ParseJson (Hyena.Json.JsonObject jsonObj) { if (jsonObj == null) throw new ArgumentNullException ("jsonObj"); // TODO: Casting checks? ResourceReference resourceRef = new ResourceReference (); object uri; if (jsonObj.TryGetValue ("api-ref", out uri)) resourceRef.ApiRef = (string) uri; if (jsonObj.TryGetValue ("href", out uri)) resourceRef.Href = (string) uri; return resourceRef; }
public static NoteInfo ParseJson (Hyena.Json.JsonObject jsonObj) { if (jsonObj == null) throw new ArgumentException ("jsonObj does not contain a valid NoteInfo representation"); // TODO: Checks NoteInfo note = new NoteInfo (); note.Guid = (string) jsonObj ["guid"]; // TODO: Decide how much is required object val; if (jsonObj.TryGetValue (TitleElementName, out val)) note.Title = (string) val; if (jsonObj.TryGetValue (NoteContentElementName, out val)) note.NoteContent = (string) val; if (jsonObj.TryGetValue (NoteContentVersionElementName, out val)) note.NoteContentVersion = (double) val; if (jsonObj.TryGetValue (LastChangeDateElementName, out val)) note.LastChangeDate = DateTime.Parse ((string) val); if (jsonObj.TryGetValue (LastMetadataChangeDateElementName, out val)) note.LastMetadataChangeDate = DateTime.Parse ((string) val); if (jsonObj.TryGetValue (CreateDateElementName, out val)) note.CreateDate = DateTime.Parse ((string) val); if (jsonObj.TryGetValue (LastSyncRevisionElementName, out val)) note.LastSyncRevision = (int) val; if (jsonObj.TryGetValue (OpenOnStartupElementName, out val)) note.OpenOnStartup = (bool) val; if (jsonObj.TryGetValue (PinnedElementName, out val)) note.Pinned = (bool) val; if (jsonObj.TryGetValue (TagsElementName, out val)) { Hyena.Json.JsonArray tagsJsonArray = (Hyena.Json.JsonArray) val; note.Tags = new List<string> (tagsJsonArray.Count); foreach (string tag in tagsJsonArray) note.Tags.Add (tag); } if (jsonObj.TryGetValue (ResourceReferenceElementName, out val)) note.ResourceReference = ResourceReference.ParseJson ((Hyena.Json.JsonObject) val); return note; }