loadjson()

Creates a JSON object based on the text retrieved from the supplied location. The function lets you retrieve content from a JSON enabled server using a standard HTTP request. Popular content management systems like WordPress (requires JSON API plugin) and Drupal provide a JSON service/API to retrieve content.

  • The specified JSON file is expected to be UTF-8, UTF-16 or UTF-32 encoded. A byte order mark specified as the first character will be stripped. Saving any changes will change the encoding to UTF-8.
  • Loadjson() is cached per batch run (based on the URL) in print/email.
  • This online JSON viewer is handy to debug JSON data: http://jsonviewer.stack.hu​
External content is not loaded while editing a script. To test a script that loads external content, you can do a preflight; see Doing a Preflight.

loadjson(location)

Loads json data from the specified location.

location

String; the supplied location should be either a URL or a relative file path. The file protocol is supported as well as the http/https protocols. The complete syntax of a fully qualified URL with the "file" protocol is: file://<host>/<path>. If the host is "localhost", it can be omitted, resulting in file:///<path>, for example: file:///c:/somefolder/somejson.json.

Examples

This sample script retrieves JSON data from a snippet.

var localJSON = loadjson('snippets/jsonsnippet.json');
if(localJSON.post){
results.html("<h3>" + localJSON.post.title + "</h3><p>" + localJSON.post.modified + "</p>"); }

This script retrieves a post from a WordPress site.

var wpPost = loadjson('http://192.168.101.58/2013/06/leave-the-third-dimension-behind-and-focus-on-real-printing-innovation/?json=1'); 
​if(wpPost.post){
​​ results.html("<h1>" + wpPost.post.title + "</h1>" + wpPost.post.content);​
}

This script retrieves multiple posts from a WordPress site.

var numPosts = 3;
var wpPost = '';
var wpRecentPosts = loadjson('http://192.168.101.58/?json=get_recent_posts&count=' + numPosts);
if(wpRecentPosts.posts){
for (var i = 0; i < numPosts ; i++) {
wpPost += "<p>" + wpRecentPosts.posts[i].title + "</p>";
}
}
results.after(wpPost)