JSPM

json-hood

1.1.0
  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 36
  • Score
    100M100P100Q60478F
  • License ISC

A beautiful way to clearly show JSON Objects and Array in a human readable format

Package Exports

  • json-hood

This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (json-hood) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.

Readme

JSON Hood

##Summary

This module takes a JSON Object or Array as a parameter and renders them with arrows to nicely link each attribute.

var arrowDiagram = require('./main.js');

arrowDiagram.printJSONasArrowDiagram({"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 create markup languages such as DocBook.","GlossSeeAlso": ["GML", "XML"]},"GlossSee": "markup"}}      }    }})

or

var arrowDiagram = require('./main.js');

var diagram = arrowDiagram.getJSONasArrowDiagram({"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 create markup languages such as DocBook.","GlossSeeAlso": ["GML", "XML"]},"GlossSee": "markup"}}      }    }})
console.log(diagram)

Return

└────>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 create markup languages such as DocBook.
        │ └────>GlossSeeAlso
        │   ├────> [0]
        │   │ └────>GML
        │   └────> [1]
        │     └────>XML
        └────>GlossSee :  markup

Sample Json taken from http://json.org/example.html

Arrays

Arrays are printed out with the numerical index in [].

e.g.

var arrowDiagram = require('./main.js');
arrowDiagram.printJSONasArrowDiagram({"Table":[
    {"Name":"Plate", "Colour":"White"},
    {"Name":"Fork", "Colour":"Pink"},
    {"Name":"Knife", "Colour":"Orange"},
    {"Name":"Spoon", "Colour":"Red"}
]});

returns

└────>Table
  ├────> [0]
  │ ├────>Name :  Plate
  │ └────>Colour :  White
  ├────> [1]
  │ ├────>Name :  Fork
  │ └────>Colour :  Pink
  ├────> [2]
  │ ├────>Name :  Knife
  │ └────>Colour :  Orange
  └────> [3]
    ├────>Name :  Spoon
    └────>Colour :  Red

More Examples

More complex JSON Object

var arrowDiagram = require('./main.js');
arrowDiagram.printJSONasArrowDiagram({"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.SQLServerDriver", "dataStoreUrl": "jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon", "dataStoreUser": "sa", "dataStorePassword": "dataStoreTestQuery", "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"}}})

returns

└────>web-app
     ├────>servlet
     │	├────> [0]
     │	│	├────>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.SQLServerDriver
     │	│	 	├────>dataStoreUrl :  jdbc:microsoft:sqlserver://LOCALHOST:1433;DatabaseName=goon
     │	│	 	├────>dataStoreUser :  sa
     │	│	 	├────>dataStorePassword :  dataStoreTestQuery
     │	│	 	├────>dataStoreTestQuery :  SET NOCOUNT ON;select test='test';
     │	│	 	├────>dataStoreLogFile :  /usr/local/tomcat/logs/datastore.log
     │	│	 	├────>dataStoreInitConns :  10
     │	│	 	├────>dataStoreMaxConns :  100
     │	│	 	├────>dataStoreConnUsageLimit :  100
     │	│	 	├────>dataStoreLogLevel :  debug
     │	│	 	└────>maxUrlLength :  500
     │	├────> [1]
     │	│	├────>servlet-name :  cofaxEmail
     │	│	├────>servlet-class :  org.cofax.cds.EmailServlet
     │	│	└────>init-param
     │	│	 	├────>mailHost :  mail1
     │	│	 	└────>mailHostOverride :  mail2
     │	├────> [2]
     │	│	├────>servlet-name :  cofaxAdmin
     │	│	└────>servlet-class :  org.cofax.cds.AdminServlet
     │	├────> [3]
     │	│	├────>servlet-name :  fileServlet
     │	│	└────>servlet-class :  org.cofax.cds.FileServlet
     │	└────> [4]
     │	 	├────>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

Sample Json taken from http://json.org/example.html