Scilab Home Page | Wiki | Bug Tracker | Forge | Mailing List Archives | Scilab Online Help | File Exchange
ATOMS : Scilab JSON Toolbox details
Please login or create an account

Scilab JSON Toolbox

A Simple JSON Toolbox for Scilab
(620 downloads for this version - 12605 downloads for all versions)
A more recent valid version exists: 0.3
Aditya Sengupta
Owner Organization
Indian Institute of Technology Bombay
Aditya Sengupta
Creation Date
May 2, 2011
Source created on
Scilab 5.2.x
Binaries available on
Scilab 5.2.x:
Windows 64-bit Windows 32-bit Linux 64-bit Linux 32-bit MacOSX
Install command
--> atomsInstall("json")
            More information available at:


JSON (JavaScript Object Notation) is a lightweight data-interchange format. It
is easy for humans to read and write. It is easy for machines to parse and
generate. It is based on a subset of the JavaScript Programming Language,
[Standard ECMA-262 3rd Edition - December 1999](

The JSON format is often used for serializing and transmitting structured data
over a network connection. It is primarily used to transmit data between a
server and web application, serving as an alternative to XML.

For more information, please read: 



Since JSON supports key-value objects, the parser interprets the key-value JSON
objects as Scilab ``struct`` objects. 

(Type ``help struct`` in Scilab for more information on Scilab structures.)

Consider the following example:

	  "orderID": 12345,
	  "shopperName": "John Smith",
	  "shopperEmail": "",
	  "contents": [
		  "productID": 34,
		  "productName": "SuperWidget",
		  "quantity": 1
		  "productID": 56,
		  "productName": "WonderWidget",
		  "quantity": 3
	  "orderCompleted": true

Assuming the above JSON text is saved in a text file in the current working
directory, the text can be loaded into Scilab and parsed thus: 

    json_eg = mgetl("eg_1.json");
    mystruct = JSONParse(json_eg)

This returns the following Scilab structure:

    mystruct  =
    orderID: 12345
    shopperName: "John Smith"
    shopperEmail: ""
    contents: [1x2 struct]
    orderCompleted: "%T"

Individual elements in the structure can be accessed thus: 

Example 1:

     ans  =

Example 2: 

	 ans  =

Note that the JSON values of ``true``, ``false`` and ``null`` are represented in
Scilab as ``%T``, ``%F`` and ``%Nan``. Since Scilab contains a function called
``null()``, the function will be temporarily redefined by the parser. However,
the parser will restore the function after it is done parsing. 

A Note About Matrices

A special aspect about this particular parser is the way it interprets vectors
and matrices: 

JSON of the form:

    "[1, 2, 3, 4, 5]"

is returned as a (row) vector is Scilab, as one might expect. 

JSON of the form:

    "[[1, 2, 3], [4, 5, 6], [7, 8, 9]]"

is returned as a two-dimensional matrix in Scilab: 

    1.    2.    3.  
    4.    5.    6.  
    7.    8.    9.  

as one might expect, since the above JSON is fundamentally an example of a set
of arrays within an array. There is currently no support for hypermatrices. If
you need them, please add an [issue](
and I'll consider adding support. 

Proceeding with the above convention, a Scilab column vector would be defined in
JSON thus: 

    "[[1], [2],  [3], [4]]"

which when parsed, returns this: 


Other Notes

* The parser takes into consideration JSON backslash-escapes. Except for the
backslash-quote, all other backslash-escapes are left as is as they do not
affect Scilab strings. Backslash-quotes are taken into consideration during the
parsing process. 
* This version only has a parser. The next major version will include a JSON
encoder as well. Suggestions on this are welcome. 

Files (2)
[48.90 kB]
Source code archive

[72.15 kB]
OS-independent binary for Scilab 5.2.x
Mise à jour du fichier de Description.
News (0)
Comments (0)
Leave a comment
You must register and log in before leaving a comment.
Email notifications
Send me email when this toolbox has changes, new files or a new release.
You must register and log in before setting up notifications.