<div dir="ltr">And here is the Node.js code which supports JSON validation (with X3DJSAIL).<div><br></div><div>Enjoy!</div><div>var java = require('java');</div><div>var autoclass = require ('./X3Dautoclass');<br>var X3DJSONLD = java.import("net.coderextreme.X3DJSONLD")<br>var loader = new X3DJSONLD();<br>var File = java.import("java.io.File")<br>var jsobj = loader.readJsonFileSync(new File("./examples/HelloWorldProgramOutput.json"));<br>var document = loader.loadJsonIntoDocumentSync(jsobj);<br>console.log(loader.serializeDOMSync(loader.getX3DVersionSync(jsobj), document));<br>var X3DLoaderDOM = java.import("org.web3d.x3d.jsail.X3DLoaderDOM")<br>var xmlLoader = new X3DLoaderDOM();<br>var X3D0 = xmlLoader.toX3dObjectTreeSync(document);<br>X3D0.toFileX3DSync("./examples/Json.x3d");<br>X3D0.toFileJSONSync("./examples/Json.json");<br></div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Apr 25, 2020 at 11:56 AM John Carlson <<a href="mailto:yottzumm@gmail.com">yottzumm@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr">I've been worrying a bit about JSON validation against a non-existent schema standard, and I finally realized that at X3DJSAIL (the Nashorn version at list) can validate JSON!<div><br>Here is example Nashorn code which can lead in that direction!  Now that we have a validator (essentially), can we move towards standardization of X3D JSON?</div><div><br></div><div>I can work on a Node.js version if necessary!</div><div><br></div><div>Thanks,</div><div><br></div><div>John</div><div><br></div><div>load('classpath:nashorn/node/X3Dautoclass.js');<br>var ConfigurationProperties = Packages.org.web3d.x3d.jsail.ConfigurationProperties;<br>ConfigurationProperties.showDefaultAttributes = false;<br>ConfigurationProperties.xsltEngine = ConfigurationProperties.XSLT_ENGINE_NATIVE_JAVA;<br>ConfigurationProperties.deleteIntermediateFiles = false;<br>ConfigurationProperties.setStripTrailingZeroes(true);<br><br>    var X3DJSONLD = Java.type("net.coderextreme.X3DJSONLD")<br>    var loader = new X3DJSONLD();<br>    var File = Java.type("java.io.File")<br>    var jsobj = loader.readJsonFile(new File("./examples/HelloWorldProgramOutput.json"));<br>    var document = loader.loadJsonIntoDocument(jsobj);<br>    print(loader.serializeDOM(loader.getX3DVersion(jsobj), document));<br>    var X3DLoaderDOM = Java.type("org.web3d.x3d.jsail.X3DLoaderDOM")<br>    var xmlLoader = new X3DLoaderDOM();<br>    var X3D0 = xmlLoader.toX3dObjectTree(document);<br>    X3D0.toFileX3D("./examples/Json.x3d");<br>    X3D0.toFileJSON("./examples/Json.json");<br></div></div>
</blockquote></div>