[x3d-public] X3DJSAIL still broken! JSON actually
Don Brutzman
brutzman at nps.edu
Thu Jul 1 12:36:52 PDT 2021
John, as discussed again Monday, am not yet ready to do a JSON schema generation/loading upgrade.
So to be precise: JSON export is not working IAW your updated tools.
Hopefully will make further progress along that vector later this month.
On 6/30/2021 6:15 PM, John Carlson wrote:
>
>
> Example of file produced by X3DJSAIL attached.
>
>
> coderextreme at coderextreme-Kubuntu20:~/X3DJSONLD/src/main/python$ python3
> validate.py < ../data/ball.new.json
> Traceback (most recent call last):
> File "validate.py", line 9, in <module>
> jsobj = json.loads(sys.stdin.read())
> File "/usr/lib/python3.8/json/__init__.py", line 357, in loads
> return _default_decoder.decode(s)
> File "/usr/lib/python3.8/json/decoder.py", line 337, in decode
> obj, end = self.raw_decode(s, idx=_w(s, 0).end())
> File "/usr/lib/python3.8/json/decoder.py", line 353, in raw_decode
> obj, end = self.scan_once(s, idx)
> json.decoder.JSONDecodeError: Expecting property name enclosed in double
> quotes: line 271 column 35 (char 14381)
>
>
> coderextreme at coderextreme-Kubuntu20:~/X3DJSONLD/src/main/python$
> jsonlint ../data/ball.new.json
> Error: Parse error on line 270:
> ... { "ImageTexture":
> -----------------------^
> Expecting 'STRING', got '{'
> at Object.parseError
> (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:55:11)
> at Object.parse
> (/usr/local/lib/node_modules/jsonlint/lib/jsonlint.js:132:22)
> at parse (/usr/local/lib/node_modules/jsonlint/lib/cli.js:82:14)
> at main (/usr/local/lib/node_modules/jsonlint/lib/cli.js:135:14)
> at Object.<anonymous>
> (/usr/local/lib/node_modules/jsonlint/lib/cli.js:179:1)
> at Module._compile (internal/modules/cjs/loader.js:1138:30)
> at Object.Module._extensions..js
> (internal/modules/cjs/loader.js:1158:10)
> at Module.load (internal/modules/cjs/loader.js:986:32)
> at Function.Module._load (internal/modules/cjs/loader.js:879:14)
> at Function.executeUserEntryPoint [as runMain]
> (internal/modules/run_main.js:71:12)
>
>
> JSON and XML code attached.
>
> Thanks for any help!
>
> John
>
> On 6/30/21 5:26 PM, John Carlson wrote:
>> This code in X3DJSAIL, file ComposedCubeMapTexture.java is still
>> broken with recent upgrade, is corrupting XML and JSON output.
>> Confirmed X3dToJson.xslt is OK!
>>
>> Input file is attached.
>>
>> John
>>
>> /**
>> * Utility method to adjust field synonyms
>> * @see <a
>> href="https://www.web3d.org/x3d/content/examples/X3dSceneAuthoringHints.html#fieldNameChanges">X3D
>> Scene Authoring Hints: X3D4 Field name changes for improved
>> consistency</a>
>> */
>> private void handleFieldSynonyms()
>> {
>> String correctedContainerField;
>> if (hasAncestorX3D() &&
>> findAncestorX3D().getVersion().startsWith("3"))
>> correctedContainerField = "back";
>> else correctedContainerField = "backTexture";
>>
>> if (getBackTexture() != null)
>> ((X3DConcreteNode)
>> getBackTexture()).setContainerFieldOverride(correctedContainerField);
>> else if (getBackTextureProtoInstance() != null)
>> ((X3DConcreteNode)
>> getBackTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);
>>
>> if (getBottomTexture() != null)
>> ((X3DConcreteNode)
>> getBottomTexture()).setContainerFieldOverride(correctedContainerField);
>> else if (getBottomTextureProtoInstance() != null)
>> ((X3DConcreteNode)
>> getBottomTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);
>>
>> if (getFrontTexture() != null)
>> ((X3DConcreteNode)
>> getFrontTexture()).setContainerFieldOverride(correctedContainerField);
>> else if (getFrontTextureProtoInstance() != null)
>> ((X3DConcreteNode)
>> getFrontTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);
>>
>> if (getLeftTexture() != null)
>> ((X3DConcreteNode)
>> getLeftTexture()).setContainerFieldOverride(correctedContainerField);
>> else if (getLeftTextureProtoInstance() != null)
>> ((X3DConcreteNode)
>> getLeftTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);
>>
>> if (getRightTexture() != null)
>> ((X3DConcreteNode)
>> getRightTexture()).setContainerFieldOverride(correctedContainerField);
>> else if (getRightTextureProtoInstance() != null)
>> ((X3DConcreteNode)
>> getRightTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);
>>
>> if (getTopTexture() != null)
>> ((X3DConcreteNode)
>> getTopTexture()).setContainerFieldOverride(correctedContainerField);
>> else if (getTopTextureProtoInstance() != null)
>> ((X3DConcreteNode)
>> getTopTextureProtoInstance()).setContainerFieldOverride(correctedContainerField);
>> }
>>
all the best, Don
--
Don Brutzman Naval Postgraduate School, Code USW/Br brutzman at nps.edu
Watkins 270, MOVES Institute, Monterey CA 93943-5000 USA +1.831.656.2149
X3D graphics, virtual worlds, navy robotics http://faculty.nps.edu/brutzman
More information about the x3d-public
mailing list