{"revision":"c10276e953456835cdbb1f3a60d58ae1980be353","document":{"id":1052,"path":"api-reference/server-api-reference/c_J2jsAPI.md","title":"j2js - Global","bundle":null,"doc_type":null,"release":"australia","body":"\n# j2js- Global\n\nThe j2js script include enables you to convert Java objects to JavaScript objects.\n\nIf the given value is a Java object that can be converted to an equivalent JavaScript object, that conversion is performed and the result is returned. Otherwise the original Java object is returned.\n\nThe j2js class is available to server-side scripts.\n\nThe specific conversion performed in the order they are checked.\n\n-   Java String -&gt; JavaScript string\n-   Java Boolean -&gt; JavaScript boolean\n-   Java Integer -&gt; JavaScript number\n-   Java Long -&gt; JavaScript number\n-   Java Double -&gt; JavaScript number\n-   Java Byte -&gt; JavaScript number\n-   Java Float -&gt; JavaScript number\n-   Java Short -&gt; JavaScript number\n-   Java Character -&gt; JavaScript number\n-   Java Array -&gt; JavaScript Array with order preserved\n-   Java List -&gt; JavaScript Array with order preserved\n-   Java Map -&gt; JavaScript Object with the key/value pairs translated into property/value pairs\n-   Java Set -&gt; JavaScript Array in arbitrary order\n\nConversions are performed recursively on the elements of arrays, lists, or collections. For example, given a Java ArrayList of ArrayLists of strings, this will return a JavaScript Array of Arrays of strings.\n\n**Parent Topic:**[Server API reference](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/api-reference/server-api-reference/api-server.md)\n\n## j2js - j2js\\(Object javaObject\\)\n\nConverts a Java object from system code to a JavaScript object.\n\n|Name|Type|Description|\n|----|----|-----------|\n|javaObject|Object|A Java object from system code such as a Packages call.|\n\n|Type|Description|\n|----|-----------|\n|Object|A JavaScript object if the parameter can be converted, otherwise it returns the Java object.|\n\n```\nvar tu = new TableUtils(\"cmdb_ci_win_server\");\nvar classes = tu.getHierarchy();\n//getHierarchy returns a Java ArrayList, which is not exactly like a JavaScript Array\n//for example you cannot get length\ngs.print(\"classes = \" + classes);\ngs.print(\"classes.length = \" + classes.length);\n \n//convert to a JavaScript Array\ngs.include(\"j2js\");\nvar jsClasses = j2js(classes);\ngs.print(\"jsClasses = \" + jsClasses);\ngs.print(\"jsClasses.length = \" + jsClasses.length);\n```\n\nOutput:\n\n```\nclasses = [cmdb_ci_win_server, cmdb_ci_server, cmdb_ci_computer, cmdb_ci_hardware, cmdb_ci]\nclasses.length = undefined\njsClasses = cmdb_ci_win_server,cmdb_ci_server,cmdb_ci_computer,cmdb_ci_hardware,cmdb_ci\njsClasses.length = 5\n```\n\n"}}