[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