public static UserInfo ParseJson(string jsonString) { Hyena.Json.Deserializer deserializer = new Hyena.Json.Deserializer(jsonString); object obj = deserializer.Deserialize(); Hyena.Json.JsonObject jsonObj = obj as Hyena.Json.JsonObject; if (jsonObj == null) { throw new ArgumentException("jsonString does not contain a valid UserInfo representation"); } // TODO: Checks UserInfo user = new UserInfo(); user.UserName = (string)jsonObj ["user-name"]; user.FirstName = (string)jsonObj ["first-name"]; user.LastName = (string)jsonObj ["last-name"]; object val; if (jsonObj.TryGetValue("latest-sync-revision", out val)) { user.LatestSyncRevision = (int)val; } else { user.LatestSyncRevision = -1; } if (jsonObj.TryGetValue("current-sync-guid", out val)) { user.CurrentSyncGuid = (string)val; } Hyena.Json.JsonObject notesRefJsonObj = (Hyena.Json.JsonObject)jsonObj ["notes-ref"]; user.Notes = ResourceReference.ParseJson(notesRefJsonObj); if (jsonObj.TryGetValue("friends-ref", out val)) { user.Notes = ResourceReference.ParseJson((Hyena.Json.JsonObject)val); } return(user); }
public static RootInfo ParseJson(string jsonString) { Hyena.Json.Deserializer deserializer = new Hyena.Json.Deserializer(jsonString); object obj = deserializer.Deserialize(); Hyena.Json.JsonObject jsonObj = obj as Hyena.Json.JsonObject; if (jsonObj == null) { throw new ArgumentException("jsonString does not contain a valid RootInfo representation"); } // TODO: Checks RootInfo root = new RootInfo(); root.ApiVersion = (string)jsonObj ["api-version"]; object val; if (jsonObj.TryGetValue("user-ref", out val)) { Hyena.Json.JsonObject userRefJsonObj = (Hyena.Json.JsonObject)val; root.User = ResourceReference.ParseJson(userRefJsonObj); } root.AuthorizeUrl = (string)jsonObj ["oauth_authorize_url"]; root.AccessTokenUrl = (string)jsonObj ["oauth_access_token_url"]; root.RequestTokenUrl = (string)jsonObj ["oauth_request_token_url"]; return(root); }
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); }
private IList <NoteInfo> ParseJsonNotes(string jsonString, out int?latestSyncRevision) { Hyena.Json.Deserializer deserializer = new Hyena.Json.Deserializer(jsonString); object obj = deserializer.Deserialize(); Hyena.Json.JsonObject jsonObj = obj as Hyena.Json.JsonObject; Hyena.Json.JsonArray noteArray = (Hyena.Json.JsonArray)jsonObj [NotesElementName]; object val; if (jsonObj.TryGetValue(LatestSyncRevisionElementName, out val)) { latestSyncRevision = (int)val; } else { latestSyncRevision = null; } return(ParseJsonNoteArray(noteArray)); }
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); }
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 = 0; string key = "<unknown>"; try { key = TitleElementName; if (jsonObj.TryGetValue(key, out val)) { note.Title = (string)val; } key = NoteContentElementName; if (jsonObj.TryGetValue(key, out val)) { note.NoteContent = (string)val; } key = NoteContentVersionElementName; if (jsonObj.TryGetValue(key, out val)) { note.NoteContentVersion = (double)val; } key = LastChangeDateElementName; if (jsonObj.TryGetValue(key, out val)) { note.LastChangeDate = DateTime.Parse((string)val); } key = LastMetadataChangeDateElementName; if (jsonObj.TryGetValue(key, out val)) { note.LastMetadataChangeDate = DateTime.Parse((string)val); } key = CreateDateElementName; if (jsonObj.TryGetValue(key, out val)) { note.CreateDate = DateTime.Parse((string)val); } key = LastSyncRevisionElementName; if (jsonObj.TryGetValue(key, out val)) { note.LastSyncRevision = (int)val; } key = OpenOnStartupElementName; if (jsonObj.TryGetValue(key, out val)) { note.OpenOnStartup = (bool)val; } key = PinnedElementName; if (jsonObj.TryGetValue(key, out val)) { note.Pinned = (bool)val; } key = TagsElementName; if (jsonObj.TryGetValue(key, 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); } } key = ResourceReferenceElementName; if (jsonObj.TryGetValue(key, out val)) { note.ResourceReference = ResourceReference.ParseJson((Hyena.Json.JsonObject)val); } } catch (InvalidCastException e) { Logger.Error("Note '{0}': Key '{1}', value '{2}' failed to parse due to invalid type", note.Guid, key, val); throw e; } return(note); }