protected override object ImportFromString(Jayrock.Json.Conversion.ImportContext context, JsonReader reader) { try { string val = reader.ReadString(); return DateTime.Parse(val); } catch (FormatException e) { throw new JsonException("Error importing JSON String as System.DateTime.", e); } }
protected override object ImportFromString(Jayrock.Json.Conversion.ImportContext context, JsonReader reader) { try { string val = reader.ReadString().ToLower(); return (val == "1") || (val == "true") || (val == "t"); } catch (FormatException e) { throw new JsonException("Error importing JSON String as System.Boolean.", e); } }
public void Shred() { JsonReader reader = CreateReader(@" {'web-app': { 'servlet': [ { 'servlet-name': 'cofaxCDS', 'servlet-class': 'org.cofax.cds.CDSServlet', 'init-param': { 'configGlossary:installationAt': 'Philadelphia, PA', 'configGlossary:adminEmail': '*****@*****.**', 'configGlossary:poweredBy': 'Cofax', 'configGlossary:poweredByIcon': '/images/cofax.gif', 'configGlossary:staticPath': '/content/static', 'templateProcessorClass': 'org.cofax.WysiwygTemplate', 'templateLoaderClass': 'org.cofax.FilesTemplateLoader', 'templatePath': 'templates', 'templateOverridePath': '', 'defaultListTemplate': 'listTemplate.htm', 'defaultFileTemplate': 'articleTemplate.htm', 'useJSP': false, 'jspListTemplate': 'listTemplate.jsp', 'jspFileTemplate': 'articleTemplate.jsp', 'cachePackageTagsTrack': 200, 'cachePackageTagsStore': 200, 'cachePackageTagsRefresh': 60, 'cacheTemplatesTrack': 100, 'cacheTemplatesStore': 50, 'cacheTemplatesRefresh': 15, 'cachePagesTrack': 200, 'cachePagesStore': 100, 'cachePagesRefresh': 10, 'cachePagesDirtyRead': 10, 'searchEngineListTemplate': 'forSearchEnginesList.htm', 'searchEngineFileTemplate': 'forSearchEngines.htm', 'searchEngineRobotsDb': 'WEB-INF/robots.db', 'useDataStore': true, 'dataStoreClass': 'org.cofax.SqlDataStore', 'redirectionClass': 'org.cofax.SqlRedirection', 'dataStoreName': 'cofax', 'dataStoreDriver': 'com.microsoft.jdbc.sqlserver.SQLServerDriver', 'dataStoreUrl': 'jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon', 'dataStoreUser': '******', 'dataStorePassword': '******', 'dataStoreTestQuery': 'SET NOCOUNT ON;select test=\'test\';', 'dataStoreLogFile': '/usr/local/tomcat/logs/datastore.log', 'dataStoreInitConns': 10, 'dataStoreMaxConns': 100, 'dataStoreConnUsageLimit': 100, 'dataStoreLogLevel': 'debug', 'maxUrlLength': 500}}, { 'servlet-name': 'cofaxEmail', 'servlet-class': 'org.cofax.cds.EmailServlet', 'init-param': { 'mailHost': 'mail1', 'mailHostOverride': 'mail2'}}, { 'servlet-name': 'cofaxAdmin', 'servlet-class': 'org.cofax.cds.AdminServlet'}, { 'servlet-name': 'fileServlet', 'servlet-class': 'org.cofax.cds.FileServlet'}, { 'servlet-name': 'cofaxTools', 'servlet-class': 'org.cofax.cms.CofaxToolsServlet', 'init-param': { 'templatePath': 'toolstemplates/', 'log': 1, 'logLocation': '/usr/local/tomcat/logs/CofaxTools.log', 'logMaxSize': '', 'dataLog': 1, 'dataLogLocation': '/usr/local/tomcat/logs/dataLog.log', 'dataLogMaxSize': '', 'removePageCache': '/content/admin/remove?cache=pages&id=', 'removeTemplateCache': '/content/admin/remove?cache=templates&id=', 'fileTransferFolder': '/usr/local/tomcat/webapps/content/fileTransferFolder', 'lookInContext': 1, 'adminGroupID': 4, 'betaServer': true}}], 'servlet-mapping': { 'cofaxCDS': '/', 'cofaxEmail': '/cofaxutil/aemail/*', 'cofaxAdmin': '/admin/*', 'fileServlet': '/static/*', 'cofaxTools': '/tools/*'}, 'taglib': { 'taglib-uri': 'cofax.tld', 'taglib-location': '/WEB-INF/tlds/cofax.tld'}}}"); ArrayList items = new ArrayList(); while (reader.Read()) { if (reader.TokenClass == JsonTokenClass.Member && reader.Text == "servlet-name") { reader.Read(); items.Add(reader.ReadString()); } } Assert.AreEqual(new string[] { "cofaxCDS", "cofaxEmail", "cofaxAdmin", "fileServlet", "cofaxTools" }, items.ToArray(typeof(string))); }
void IJsonImportable.Import(ImportContext context, JsonReader reader) { reader.MoveToContent(); if (reader.TokenClass != JsonTokenClass.Object) { reader.Skip(); return; } reader.Read(/* object */); do { var brushName = reader.ReadMember().ToLowerInvariant(); var color = reader.ReadString(); var foreground = EnumHelper.TryParse<ConsoleColor>(color, true) ?? DefaultBrush.Foreground; switch (brushName) { case "arr": case "array": Array = Array.ResetForeground(foreground); break; case "obj": case "object": Object = Object.ResetForeground(foreground); break; case "mem": case "member": Member = Member.ResetForeground(foreground); break; case "str": case "string": String = String.ResetForeground(foreground); break; case "num": case "number": Number = Number.ResetForeground(foreground); break; case "bit": case "boolean": Boolean = Boolean.ResetForeground(foreground); break; case "nil": case "null": Null = Null.ResetForeground(foreground); break; default: continue; } } while (reader.TokenClass != JsonTokenClass.EndObject); reader.Read( /* end object */); }
protected override object ImportFromString(Jayrock.Json.Conversion.ImportContext context, JsonReader reader) { try { string val = reader.ReadString(); int i = 0; foreach (string item in values) { if (item == val) return i; i++; } throw new JsonException("Error importing JSON String as " + this.OutputType.FullName + "."); } catch (FormatException e) { throw new JsonException("Error importing JSON String as " + this.OutputType.FullName + ".", e); } }
protected override object ImportFromString(Jayrock.Json.Conversion.ImportContext context, JsonReader reader) { try { string val = reader.ReadString(); EmailAdresses result = new EmailAdresses(); result.Adresses = JsonConvert.Import<string[]>(val); return result; } catch (FormatException e) { throw new JsonException("Error importing JSON String as " + this.OutputType.FullName + ".", e); } }