Re: [WebDNA] JSON objects and [JSONstore]: new cell

This WebDNA talk-list message is from

2014


It keeps the original formatting.
numero = 111612
interpreted = N
texte = looks like an excellent addition. jym On 9/25/2014 5:07 AM, christophe.billiottet@webdna.us wrote: > Because more and more websites are relying on javascript (browser side)= , we have decided to give WebDNA a tool to store complex JSON objects int= o a flat database. > > JSON object and XML format have more or less the same structure, howeve= r XML specification does not match the data model for most programming la= nguages which makes it slow and tedious for programmers to parse. Compare= d to JSON, XML has a low data-to-markup ratio which results in it being m= ore difficult for humans to read and write. JSON standard is language-ind= ependent and its data structures, arrays and objects, are universally rec= ognized. These structures are supported in some way by nearly all modern = programming languages and are familiar to nearly all programmers. These q= ualities make it an ideal format for data interchange on the web. It hand= les different types of data: numbers, strings, boolean, arrays=85 The pro= blem relies in JSON objects structure that can be complicated to handle a= s it can include other nested objects, arrays, arrays with objects, objec= ts with nested arrays, objects with nested objects, object with nested ar= rays and objects=85 a number of structures that are difficult to recogniz= e and parse and even more complicated to store. > > The no-sql is one answer. I already explained here how to use WebDNA as= no-sql database, each JSON object being stored as a text file indexed in= to a WebDNA database. > > We went one step further and built a new tag, a =93cell=94 [JSONstore] = that can analyze, recognize, parse and store JSON object into our usual W= ebDNA flat database. We made it solid and stucture-independant. > > So, let=92s see an example of a JSON Object with a nested array; this s= hould not be too difficult for a human to read > > var myObject =3D { > "first": "John", > "last": "Doe", > "age": 39, > "interests": [ "Reading", "Mountain Biking", "Hacking" ], > "favorites": { > "color": "Blue", > "sport": "Soccer", > "food": "Spaghetti" > }, > "skills": [ > { > "category": "JavaScript", > "tests": [ > { "name": "One", "score": 90 }, > { "name": "Two", "score": 96 } > ] > }, > { > "category": "CouchDB", > "tests": [ > { "name": "One", "score": 79 }, > { "name": "Two", "score": 84 } > ] > }, > { > =93category": "WebDNA", > "tests": [ > { "name": "One", "score": 97 }, > { "name": "Two", "score": 93 } > ] > } > ] > } > > > > > We will make WebDNA store it in a flat database: simple data go the usu= al way, like > > first=3DJohn > last=3DDoe > age=3D39 > > arrays will have a field with =93:array=94 appended to the field name s= o WebDNA knows it is an array and that the content should not be parsed. > > interests:array=3D=93Reading=94,=93Mountain Biking=94,=93Hacking=94 > > skills:array=3D{=93category=94:=94JavaScript=94,=94tests=94:[{=93name=94= :=94One", "score":90},{"name": "Two", "score": 96 }]},{"category":"CouchD= B","tests":[{"name":"One","score":79},{"name":"Two","score":84 }]}, {=93c= ategory":"WebDNA",=93tests=94:[{"name":"One","score":97},{"name":"Two","s= core":93} > > nested objects will be parsed and stored by appending the second level = field name to the first one, separated by a colon > > favorites:color=3Dblue > favorite:sport=3DSoccer > favorite:food=3DSpaghetti > > > > So, how to do that? first by preparing your database: it will include t= hese fields > > firstlastageinterests:arrayfavorites:colorfavorite:sport favorite:= food skills:array > > Then, using the new cell [JSONstore] and the database name > > [JSONstore db=3Dwhatever.db] > > [/JSONstore] > > (a debug=3Don option is available to know exactly what and how it is st= ored) > > by replacing by the actual object, the cell [JSONstore] wi= ll populate the database like this, automatically > > first=3DJohn > last=3DDoe > age=3D39 > interests:array=3D=93Reading=94, =93Mountain Biking", "Hacking" > favorites:color=3DBlue > favorites:sport=3DSoccer > favorites:food=3DSpaghetti > skills:array=3D{ "category": "JavaScript", "tests": [ { "name": "One", = "score": 90 }, { "name": "Two", "score": 96 } ] }, { "category": "CouchDB= ", "tests": [ { "name": "One", "score": 79 }, { "name": "Two", "score": 8= 4 } ] }, { "category": "WebDNA", "tests": [ { "name": "One", "score": 97 = }, { "name": "Two", "score": 93 } ] } > > Sorting the data to recompose the original object is straightforward > > { > =93first=94: =93[first]", > =93last=94: "[last]", > =93interests=94: [interest:array], > "favorites": { > =93color=94: =93[favorite:color]=94, > =93food=94: =93[favorite:food]" > =93sport=94: =93[favorite:sport]" > } > =93skills=94: [skills:array] > } > > > JQUERY, for instance, will work well with it. > > This has been tested against the following examples, some of them being= somewhat difficult to work with. > > > > > -------------- > { "accounting" : [ > { "firstName" : "John", > "lastName" : "Doe", > "age" : 23 }, > { "firstName" : "Mary", > "lastName" : "Smith", > "age" : 32 } > ], > "sales" : [ > { "firstName" : "Sally", > "lastName" : "Green", > "age" : 27 }, > { "firstName" : "Jim", > "lastName" : "Galley", > "age" : 41 } > ] > } > -------------- > { > "problems": [{ > "Diabetes":[{ > "medications":[{ > "medicationsClasses":[{ > "className":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }], > "className2":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }] > }] > }], > "labs":[{ > "" > }] > }], > "Asthma":[{}] > }] > } > -------------- > { > "medications":[{ > "aceInhibitors":[{ > "name":"lisinopril", > "strength":"10 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "antianginal":[{ > "name":"nitroglycerin", > "strength":"0.4 mg Sublingual Tab", > "dose":"1 tab", > "route":"SL", > "sig":"q15min PRN", > "pillCount":"#30", > "refills":"Refill 1" > }], > "anticoagulants":[{ > "name":"warfarin sodium", > "strength":"3 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "betaBlocker":[{ > "name":"metoprolol tartrate", > "strength":"25 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "diuretic":[{ > "name":"furosemide", > "strength":"40 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "mineral":[{ > "name":"potassium chloride ER", > "strength":"10 mEq Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }] > } > ], > "labs":[{ > "name":"Arterial Blood Gas", > "time":"Today", > "location":"Main Hospital Lab" > }, > { > "name":"BMP", > "time":"Today", > "location":"Primary Care Clinic" > }, > { > "name":"BNP", > "time":"3 Weeks", > "location":"Primary Care Clinic" > }, > { > "name":"BUN", > "time":"1 Year", > "location":"Primary Care Clinic" > }, > { > "name":"Cardiac Enzymes", > "time":"Today", > "location":"Primary Care Clinic" > }, > { > "name":"CBC", > "time":"1 Year", > "location":"Primary Care Clinic" > }, > { > "name":"Creatinine", > "time":"1 Year", > "location":"Main Hospital Lab" > }, > { > "name":"Electrolyte Panel", > "time":"1 Year", > "location":"Primary Care Clinic" > }, > { > "name":"Glucose", > "time":"1 Year", > "location":"Main Hospital Lab" > }, > { > "name":"PT/INR", > "time":"3 Weeks", > "location":"Primary Care Clinic" > }, > { > "name":"PTT", > "time":"3 Weeks", > "location":"Coumadin Clinic" > }, > { > "name":"TSH", > "time":"1 Year", > "location":"Primary Care Clinic" > } > ], > "imaging":[{ > "name":"Chest X-Ray", > "time":"Today", > "location":"Main Hospital Radiology" > }, > { > "name":"Chest X-Ray", > "time":"Today", > "location":"Main Hospital Radiology" > }, > { > "name":"Chest X-Ray", > "time":"Today", > "location":"Main Hospital Radiology" > } > ] > } > > -------------- > > { > "first": "John", > "skills": [{ > "Diabetes":[{ > "medications":[{ > "medicationsClasses":[{ > "className":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }], > "className2":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }] > }] > }], > "labs":[{ > "" > }] > }], > "Asthma":[{}] > }] > } > > -------------- > > {"widget": { > "debug": "on", > "window": { > "title": "Sample Konfabulator Widget", > "name": "main_window", > "width": 500, > "height": 500 > }, > "image": { > "src": "Images/Sun.png", > "name": "sun1", > "hOffset": 250, > "vOffset": 250, > "alignment": "center" > }, > "text": { > "data": "Click Here", > "size": 36, > "style": "bold", > "name": "text1", > "hOffset": 250, > "vOffset": 100, > "alignment": "center", > "onMouseUp": "sun1.opacity =3D (sun1.opacity / 100) * 90;" > } > }} > > -------------- > > { > "ref":1, > "glossary": { > "title": "example glossary", > "GlossDiv": { > "title": "S", > "GlossList": { > "GlossEntry": { > "ID": "SGML", > "SortAs": "SGML", > "GlossTerm": "Standard Generalized Markup Language", > "Acronym": "SGML", > "Abbrev": "ISO 8879:1986", > "GlossDef": { > "para": "A meta-markup language, used to creat= e markup languages such as DocBook.", > "GlossSeeAlso": ["GML", "XML"] > }, > "GlossSee": "markup" > } > } > } > } > } > > -------------- > > {"web-app": { > "servlet": [ > { > "servlet-name": "cofaxCDS", > "servlet-class": "org.cofax.cds.CDSServlet", > "init-param": { > "configGlossary:installationAt": "Philadelphia, PA", > "configGlossary:adminEmail": "ksm@pobox.com", > "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.SQLServerDriv= er", > "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;Dat= abaseName=3Dgoon", > "dataStoreUser": "sa", > "dataStorePassword": "dataStoreTestQuery", > "dataStoreTestQuery": "SET NOCOUNT ON;select test=3D'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"}, > =20 > { > "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=3Dpages&id=3D"= , > "removeTemplateCache": "/content/admin/remove?cache=3Dtemplate= s&id=3D", > "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileT= ransferFolder", > "lookInContext": 1, > "adminGroupID": 4, > "betaServer": true}}], > "servlet-mapping": { > "cofaxCDS": "/", > "cofaxEmail": "/cofaxutil/aemail/*", > "cofaxAdmin": "/admin/*", > "fileServlet": "/static/*", > "cofaxTools": "/tools/*"}, > =20 > "taglib": { > "taglib-uri": "cofax.tld", > "taglib-location": "/WEB-INF/tlds/cofax.tld"}}} > =20 > -------------- > > > { > "firstName": "John", > "lastName": "Smith", > "isAlive": true, > "age": 25, > "height_cm": 167.6, > "address": { > "streetAddress": "21 2nd Street", > "city": "New York", > "state": "NY", > "postalCode": "10021-3100" > }, > "phoneNumbers": [ > { > "type": "home", > "number": "212 555-1234" > }, > { > "type": "office", > "number": "646 555-4567" > } > ], > "children": [], > "spouse": null > } > > -------------- > > {"menu": { > "id": "file", > "value": "File", > "popup": { > "menuitem": [ > {"value": "New", "onclick": "CreateNewDoc()"}, > {"value": "Open", "onclick": "OpenDoc()"}, > {"value": "Close", "onclick": "CloseDoc()"} > ] > } > }} > > -------------- > > {"menu": { > "header": "SVG Viewer", > "items": [ > {"id": "Open"}, > {"id": "OpenNew", "label": "Open New"}, > null, > {"id": "ZoomIn", "label": "Zoom In"}, > {"id": "ZoomOut", "label": "Zoom Out"}, > {"id": "OriginalView", "label": "Original View"}, > null, > {"id": "Quality"}, > {"id": "Pause"}, > {"id": "Mute"}, > null, > {"id": "Find", "label": "Find..."}, > {"id": "FindAgain", "label": "Find Again"}, > {"id": "Copy"}, > {"id": "CopyAgain", "label": "Copy Again"}, > {"id": "CopySVG", "label": "Copy SVG"}, > {"id": "ViewSVG", "label": "View SVG"}, > {"id": "ViewSource", "label": "View Source"}, > {"id": "SaveAs", "label": "Save As"}, > null, > {"id": "Help"}, > {"id": "About", "label": "About Adobe CVG Viewer..."} > ] > }} > > -------------- > > [/!] > > { > "ref":1, > "glossary": { > "title": "example glossary", > "GlossDiv": { > "title": "S", > "GlossList": { > "GlossEntry": { > "ID": "SGML", > "SortAs": "SGML", > "GlossTerm": "Standard Generalized Markup Language", > "Acronym": "SGML", > "Abbrev": "ISO 8879:1986", > "GlossDef": { > "para": "A meta-markup language, used to creat= e markup languages such as DocBook.", > "GlossSeeAlso": ["GML", "XML"] > }, > "GlossSee": "markup" > } > } > } > } > } > > -------------- > > > { "PONumber" : 1600, > "Reference" : "ABULL-20140421", > "Requestor" : "Alexis Bull", > "User" : "ABULL", > "CostCenter" : "A50", > "ShippingInstructions" : { "name" : "Alexis Bull", > "Address": { "street" : "200 Sporting Gr= een", > "city" : "South San Franc= isco", > "state" : "CA", > "zipCode" : 99236, > "country" : "United States o= f America" }, > "Phone" : [ { "type" : "Office", "number"= : "909-555-7307" }, > { "type" : "Mobile", "number"= : "415-555-1234" } ] }, > "Special Instructions" : null, > "AllowPartialShipment" : false, > "LineItems" : [ { "ItemNumber" : 1, > "Part" : { "Description" : "One M= agic Christmas", > "UnitPrice" : 19.95,= > "UPCCode" : 131310= 92899 }, > "Quantity" : 9.0 }, > { "ItemNumber" : 2, > "Part" : { "Description" : "Letha= l Weapon", > "UnitPrice" : 19.95,= > "UPCCode" : 853916= 28927 }, > "Quantity" : 5.0 } ] } > > -------------- > > > The new cell will be available with the fastCGI next week, OSX and linu= x (64bit) versions. > We will be interest to read your comments about it and to listen to you= r ideas, your needs or your comments. > > - chris > > > > > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us > Bug Reporting: support@webdna.us > --=20 Jym Duane - CTO - Purpose Media Creating Your Success Story Marketing : Television - Internet -Print Phone: (877) 443-1323 Email: jym@purposemedia.com Web: www.purposemedia.com Oregon - www.GuideToOregon.com PO Box 1725, Jacksonville, OR 97530 California - www.OrangeCounty.net PO Box 2025, Capistrano Beach, CA 92624 Associated Messages, from the most recent to the oldest:

    
  1. Re: [WebDNA] JSON objects and [JSONstore]: new cell (christophe.billiottet@webdna.us 2014)
  2. Re: [WebDNA] JSON objects and [JSONstore]: new cell (Jym Duane 2014)
  3. [WebDNA] JSON objects and [JSONstore]: new cell (christophe.billiottet@webdna.us 2014)
looks like an excellent addition. jym On 9/25/2014 5:07 AM, christophe.billiottet@webdna.us wrote: > Because more and more websites are relying on javascript (browser side)= , we have decided to give WebDNA a tool to store complex JSON objects int= o a flat database. > > JSON object and XML format have more or less the same structure, howeve= r XML specification does not match the data model for most programming la= nguages which makes it slow and tedious for programmers to parse. Compare= d to JSON, XML has a low data-to-markup ratio which results in it being m= ore difficult for humans to read and write. JSON standard is language-ind= ependent and its data structures, arrays and objects, are universally rec= ognized. These structures are supported in some way by nearly all modern = programming languages and are familiar to nearly all programmers. These q= ualities make it an ideal format for data interchange on the web. It hand= les different types of data: numbers, strings, boolean, arrays=85 The pro= blem relies in JSON objects structure that can be complicated to handle a= s it can include other nested objects, arrays, arrays with objects, objec= ts with nested arrays, objects with nested objects, object with nested ar= rays and objects=85 a number of structures that are difficult to recogniz= e and parse and even more complicated to store. > > The no-sql is one answer. I already explained here how to use WebDNA as= no-sql database, each JSON object being stored as a text file indexed in= to a WebDNA database. > > We went one step further and built a new tag, a =93cell=94 [JSONstore] = that can analyze, recognize, parse and store JSON object into our usual W= ebDNA flat database. We made it solid and stucture-independant. > > So, let=92s see an example of a JSON Object with a nested array; this s= hould not be too difficult for a human to read > > var myObject =3D { > "first": "John", > "last": "Doe", > "age": 39, > "interests": [ "Reading", "Mountain Biking", "Hacking" ], > "favorites": { > "color": "Blue", > "sport": "Soccer", > "food": "Spaghetti" > }, > "skills": [ > { > "category": "JavaScript", > "tests": [ > { "name": "One", "score": 90 }, > { "name": "Two", "score": 96 } > ] > }, > { > "category": "CouchDB", > "tests": [ > { "name": "One", "score": 79 }, > { "name": "Two", "score": 84 } > ] > }, > { > =93category": "WebDNA", > "tests": [ > { "name": "One", "score": 97 }, > { "name": "Two", "score": 93 } > ] > } > ] > } > > > > > We will make WebDNA store it in a flat database: simple data go the usu= al way, like > > first=3DJohn > last=3DDoe > age=3D39 > > arrays will have a field with =93:array=94 appended to the field name s= o WebDNA knows it is an array and that the content should not be parsed. > > interests:array=3D=93Reading=94,=93Mountain Biking=94,=93Hacking=94 > > skills:array=3D{=93category=94:=94JavaScript=94,=94tests=94:[{=93name=94= :=94One", "score":90},{"name": "Two", "score": 96 }]},{"category":"CouchD= B","tests":[{"name":"One","score":79},{"name":"Two","score":84 }]}, {=93c= ategory":"WebDNA",=93tests=94:[{"name":"One","score":97},{"name":"Two","s= core":93} > > nested objects will be parsed and stored by appending the second level = field name to the first one, separated by a colon > > favorites:color=3Dblue > favorite:sport=3DSoccer > favorite:food=3DSpaghetti > > > > So, how to do that? first by preparing your database: it will include t= hese fields > > firstlastageinterests:arrayfavorites:colorfavorite:sport favorite:= food skills:array > > Then, using the new cell [JSONstore] and the database name > > [JSONstore db=3Dwhatever.db] > > [/JSONstore] > > (a debug=3Don option is available to know exactly what and how it is st= ored) > > by replacing by the actual object, the cell [JSONstore] wi= ll populate the database like this, automatically > > first=3DJohn > last=3DDoe > age=3D39 > interests:array=3D=93Reading=94, =93Mountain Biking", "Hacking" > favorites:color=3DBlue > favorites:sport=3DSoccer > favorites:food=3DSpaghetti > skills:array=3D{ "category": "JavaScript", "tests": [ { "name": "One", = "score": 90 }, { "name": "Two", "score": 96 } ] }, { "category": "CouchDB= ", "tests": [ { "name": "One", "score": 79 }, { "name": "Two", "score": 8= 4 } ] }, { "category": "WebDNA", "tests": [ { "name": "One", "score": 97 = }, { "name": "Two", "score": 93 } ] } > > Sorting the data to recompose the original object is straightforward > > { > =93first=94: =93[first]", > =93last=94: "[last]", > =93interests=94: [interest:array], > "favorites": { > =93color=94: =93[favorite:color]=94, > =93food=94: =93[favorite:food]" > =93sport=94: =93[favorite:sport]" > } > =93skills=94: [skills:array] > } > > > JQUERY, for instance, will work well with it. > > This has been tested against the following examples, some of them being= somewhat difficult to work with. > > > > > -------------- > { "accounting" : [ > { "firstName" : "John", > "lastName" : "Doe", > "age" : 23 }, > { "firstName" : "Mary", > "lastName" : "Smith", > "age" : 32 } > ], > "sales" : [ > { "firstName" : "Sally", > "lastName" : "Green", > "age" : 27 }, > { "firstName" : "Jim", > "lastName" : "Galley", > "age" : 41 } > ] > } > -------------- > { > "problems": [{ > "Diabetes":[{ > "medications":[{ > "medicationsClasses":[{ > "className":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }], > "className2":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }] > }] > }], > "labs":[{ > "" > }] > }], > "Asthma":[{}] > }] > } > -------------- > { > "medications":[{ > "aceInhibitors":[{ > "name":"lisinopril", > "strength":"10 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "antianginal":[{ > "name":"nitroglycerin", > "strength":"0.4 mg Sublingual Tab", > "dose":"1 tab", > "route":"SL", > "sig":"q15min PRN", > "pillCount":"#30", > "refills":"Refill 1" > }], > "anticoagulants":[{ > "name":"warfarin sodium", > "strength":"3 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "betaBlocker":[{ > "name":"metoprolol tartrate", > "strength":"25 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "diuretic":[{ > "name":"furosemide", > "strength":"40 mg Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }], > "mineral":[{ > "name":"potassium chloride ER", > "strength":"10 mEq Tab", > "dose":"1 tab", > "route":"PO", > "sig":"daily", > "pillCount":"#90", > "refills":"Refill 3" > }] > } > ], > "labs":[{ > "name":"Arterial Blood Gas", > "time":"Today", > "location":"Main Hospital Lab" > }, > { > "name":"BMP", > "time":"Today", > "location":"Primary Care Clinic" > }, > { > "name":"BNP", > "time":"3 Weeks", > "location":"Primary Care Clinic" > }, > { > "name":"BUN", > "time":"1 Year", > "location":"Primary Care Clinic" > }, > { > "name":"Cardiac Enzymes", > "time":"Today", > "location":"Primary Care Clinic" > }, > { > "name":"CBC", > "time":"1 Year", > "location":"Primary Care Clinic" > }, > { > "name":"Creatinine", > "time":"1 Year", > "location":"Main Hospital Lab" > }, > { > "name":"Electrolyte Panel", > "time":"1 Year", > "location":"Primary Care Clinic" > }, > { > "name":"Glucose", > "time":"1 Year", > "location":"Main Hospital Lab" > }, > { > "name":"PT/INR", > "time":"3 Weeks", > "location":"Primary Care Clinic" > }, > { > "name":"PTT", > "time":"3 Weeks", > "location":"Coumadin Clinic" > }, > { > "name":"TSH", > "time":"1 Year", > "location":"Primary Care Clinic" > } > ], > "imaging":[{ > "name":"Chest X-Ray", > "time":"Today", > "location":"Main Hospital Radiology" > }, > { > "name":"Chest X-Ray", > "time":"Today", > "location":"Main Hospital Radiology" > }, > { > "name":"Chest X-Ray", > "time":"Today", > "location":"Main Hospital Radiology" > } > ] > } > > -------------- > > { > "first": "John", > "skills": [{ > "Diabetes":[{ > "medications":[{ > "medicationsClasses":[{ > "className":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }], > "className2":[{ > "associatedDrug":[{ > "name":"asprin", > "dose":"", > "strength":"500 mg" > }], > "associatedDrug#2":[{ > "name":"somethingElse", > "dose":"", > "strength":"500 mg" > }] > }] > }] > }], > "labs":[{ > "" > }] > }], > "Asthma":[{}] > }] > } > > -------------- > > {"widget": { > "debug": "on", > "window": { > "title": "Sample Konfabulator Widget", > "name": "main_window", > "width": 500, > "height": 500 > }, > "image": { > "src": "Images/Sun.png", > "name": "sun1", > "hOffset": 250, > "vOffset": 250, > "alignment": "center" > }, > "text": { > "data": "Click Here", > "size": 36, > "style": "bold", > "name": "text1", > "hOffset": 250, > "vOffset": 100, > "alignment": "center", > "onMouseUp": "sun1.opacity =3D (sun1.opacity / 100) * 90;" > } > }} > > -------------- > > { > "ref":1, > "glossary": { > "title": "example glossary", > "GlossDiv": { > "title": "S", > "GlossList": { > "GlossEntry": { > "ID": "SGML", > "SortAs": "SGML", > "GlossTerm": "Standard Generalized Markup Language", > "Acronym": "SGML", > "Abbrev": "ISO 8879:1986", > "GlossDef": { > "para": "A meta-markup language, used to creat= e markup languages such as DocBook.", > "GlossSeeAlso": ["GML", "XML"] > }, > "GlossSee": "markup" > } > } > } > } > } > > -------------- > > {"web-app": { > "servlet": [ > { > "servlet-name": "cofaxCDS", > "servlet-class": "org.cofax.cds.CDSServlet", > "init-param": { > "configGlossary:installationAt": "Philadelphia, PA", > "configGlossary:adminEmail": "ksm@pobox.com", > "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.SQLServerDriv= er", > "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;Dat= abaseName=3Dgoon", > "dataStoreUser": "sa", > "dataStorePassword": "dataStoreTestQuery", > "dataStoreTestQuery": "SET NOCOUNT ON;select test=3D'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"}, > =20 > { > "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=3Dpages&id=3D"= , > "removeTemplateCache": "/content/admin/remove?cache=3Dtemplate= s&id=3D", > "fileTransferFolder": "/usr/local/tomcat/webapps/content/fileT= ransferFolder", > "lookInContext": 1, > "adminGroupID": 4, > "betaServer": true}}], > "servlet-mapping": { > "cofaxCDS": "/", > "cofaxEmail": "/cofaxutil/aemail/*", > "cofaxAdmin": "/admin/*", > "fileServlet": "/static/*", > "cofaxTools": "/tools/*"}, > =20 > "taglib": { > "taglib-uri": "cofax.tld", > "taglib-location": "/WEB-INF/tlds/cofax.tld"}}} > =20 > -------------- > > > { > "firstName": "John", > "lastName": "Smith", > "isAlive": true, > "age": 25, > "height_cm": 167.6, > "address": { > "streetAddress": "21 2nd Street", > "city": "New York", > "state": "NY", > "postalCode": "10021-3100" > }, > "phoneNumbers": [ > { > "type": "home", > "number": "212 555-1234" > }, > { > "type": "office", > "number": "646 555-4567" > } > ], > "children": [], > "spouse": null > } > > -------------- > > {"menu": { > "id": "file", > "value": "File", > "popup": { > "menuitem": [ > {"value": "New", "onclick": "CreateNewDoc()"}, > {"value": "Open", "onclick": "OpenDoc()"}, > {"value": "Close", "onclick": "CloseDoc()"} > ] > } > }} > > -------------- > > {"menu": { > "header": "SVG Viewer", > "items": [ > {"id": "Open"}, > {"id": "OpenNew", "label": "Open New"}, > null, > {"id": "ZoomIn", "label": "Zoom In"}, > {"id": "ZoomOut", "label": "Zoom Out"}, > {"id": "OriginalView", "label": "Original View"}, > null, > {"id": "Quality"}, > {"id": "Pause"}, > {"id": "Mute"}, > null, > {"id": "Find", "label": "Find..."}, > {"id": "FindAgain", "label": "Find Again"}, > {"id": "Copy"}, > {"id": "CopyAgain", "label": "Copy Again"}, > {"id": "CopySVG", "label": "Copy SVG"}, > {"id": "ViewSVG", "label": "View SVG"}, > {"id": "ViewSource", "label": "View Source"}, > {"id": "SaveAs", "label": "Save As"}, > null, > {"id": "Help"}, > {"id": "About", "label": "About Adobe CVG Viewer..."} > ] > }} > > -------------- > > [/!] > > { > "ref":1, > "glossary": { > "title": "example glossary", > "GlossDiv": { > "title": "S", > "GlossList": { > "GlossEntry": { > "ID": "SGML", > "SortAs": "SGML", > "GlossTerm": "Standard Generalized Markup Language", > "Acronym": "SGML", > "Abbrev": "ISO 8879:1986", > "GlossDef": { > "para": "A meta-markup language, used to creat= e markup languages such as DocBook.", > "GlossSeeAlso": ["GML", "XML"] > }, > "GlossSee": "markup" > } > } > } > } > } > > -------------- > > > { "PONumber" : 1600, > "Reference" : "ABULL-20140421", > "Requestor" : "Alexis Bull", > "User" : "ABULL", > "CostCenter" : "A50", > "ShippingInstructions" : { "name" : "Alexis Bull", > "Address": { "street" : "200 Sporting Gr= een", > "city" : "South San Franc= isco", > "state" : "CA", > "zipCode" : 99236, > "country" : "United States o= f America" }, > "Phone" : [ { "type" : "Office", "number"= : "909-555-7307" }, > { "type" : "Mobile", "number"= : "415-555-1234" } ] }, > "Special Instructions" : null, > "AllowPartialShipment" : false, > "LineItems" : [ { "ItemNumber" : 1, > "Part" : { "Description" : "One M= agic Christmas", > "UnitPrice" : 19.95,= > "UPCCode" : 131310= 92899 }, > "Quantity" : 9.0 }, > { "ItemNumber" : 2, > "Part" : { "Description" : "Letha= l Weapon", > "UnitPrice" : 19.95,= > "UPCCode" : 853916= 28927 }, > "Quantity" : 5.0 } ] } > > -------------- > > > The new cell will be available with the fastCGI next week, OSX and linu= x (64bit) versions. > We will be interest to read your comments about it and to listen to you= r ideas, your needs or your comments. > > - chris > > > > > --------------------------------------------------------- > This message is sent to you because you are subscribed to > the mailing list . > To unsubscribe, E-mail to: > archives: http://mail.webdna.us/list/talk@webdna.us > Bug Reporting: support@webdna.us > --=20 Jym Duane - CTO - Purpose Media Creating Your Success Story Marketing : Television - Internet -Print Phone: (877) 443-1323 Email: jym@purposemedia.com Web: www.purposemedia.com Oregon - www.GuideToOregon.com PO Box 1725, Jacksonville, OR 97530 California - www.OrangeCounty.net PO Box 2025, Capistrano Beach, CA 92624 Jym Duane

DOWNLOAD WEBDNA NOW!

Top Articles:

Talk List

The WebDNA community talk-list is the best place to get some help: several hundred extremely proficient programmers with an excellent knowledge of WebDNA and an excellent spirit will deliver all the tips and tricks you can imagine...

Related Readings:

Flash Applications (2003) policies, slightly OT (2004) Trailing carriage returns (2002) Resume Catalog ? (1997) Major Security Hole (1998) Re:Need help... (1997) Still having math problems (1997) RE: Submitting ampersands in forms... (1998) [WebDNA] WebDNA admin / maintenance script (2017) Shop from PDF (2004) [Applescript] (2000) [OT] What log analyzer do you use? (2000) WYSIWYG HTML editor for use in browser (2001) MacAutorize and T1 (1998) Price Not Appearing (2000) WebCatalog can't find database (1997) Auto entering Friday's date in a field (2002) PROTECT tag suggestion (2004) syntax question, not in online refernce (1997) syntax question, not in online refernce (1997)