JSONER (originated from "JSON supportER") is a JavaScript library developed by Alexey Luchkovsky to significantly simplify most commonly used operations performed with JSON (JavaScript Object Notation) objects.

Today AJAX (Asynchroneous JavaScript And XML) technology is one of the most innovating things in Web development used for development of interactive Web applications with increased interactivity, speed, and usability.

Because AJAX is JavaScript at its core and JSON is a subset of JavaScript they work together perfectly.

JSON is well suited for data-interchange between server and WEB client due to the fact that JSON notation is built into lots of the programming languages and JSON can be mapped easy to object-oriented systems.

The JSONER library provides a set of tools which allow to simplify development of Web applications which use JSON and offers many ready-to-use solutions for common JSON related tasks.

Please refer to examples page to find more live samples for JSONER usage. Also, JSONER includes implementation of Undo Manager - please click on the images below to see Undo Manager in action.

Undo Manager Example Goggle Map virtual trip

JSONER generic tools

JSONER includes various useful methods which solve the following tasks:

Selection of data structure and method of data communications defines the architecture of WEB application. One of possible approaches is using normalized (very close by structuere) business objects on the server and client sides. The use of JSON to manipulate business objects on client side gives some advantages:

  • interchange based on objects without loosing their initial entity makes it possible to avoid the data transformation;
  • simpler business logic on both server and client sides;
  • more flexible ways of data modification;
  • and after all, business code can potentially migrate from client to server and vice versa.

Therfore, the initial function of JSONER is to work with treelike data structures. There are different methods of work tree-like structures exist on client side, and it is primarily DOM, SAX and Visitor API. JSONER implements the latter pattern providing of event-API. Apart from that JSONER includes several ready-made implementations for the most frequently used functionality.

Event Based API

To siplify processing of tree-like structures of JavaScript objects, JSONER provides functionality which is based on event/event handler paradigm (like SAX). An event-based API generates appropriate parsing events (such as the start and end of JSON node processing) directly to the application through callbacks. In both these cases, an event-based API provides a simpler, lower-level access to JSON data structure.

JSONER includes two versions for work with event-based API:

The solution offered by JSONER has such important advantages as flexibility and universality. Event handlers encapsulate custom business logic and contain only code required to special task. JSONER “lookup functionality” is based on Visitor pattern, which on the one hand provides high performance data search functionality and on the other hand doesn’t apply any limitations on data processing, flexibility and usefulness.

Data Binding

JSONER implements "data binding" functionality which allows to perform access and modification of JSON tree components:

Data Lookup Functionality

JSONER includes several methods which allows to specify search condition and find particular objects in JSON tree:

Various Utilities

And in addition, JSONER includes various utility tools for such tasks related to JSON structures processing as:

JSON transformations

While working with JSON, it's often necessary to convert JSON tree to XML for further processing. JSONER provides approriate functionality wich allows to perform such transformation using a way required by particular application.

There is another task, which is frequently occurs while working with JSON - a transformation of JSON tree to HTML structure. JSONER includes framework to convert JSON model to DOM model based by predefined pattern-layout structures. This way allows separating the presentation (or formatting) of data from data itself. So WEB UI usually has the same pattern-layout structures, that can be used multiple times for different JSON data.

JSONER has also good support for working with JSON data, which was used to support development of master-details forms using AJAX technology.

JSONER includes methods simplifying development of HTML forms, such as populating data from HTML form to JSON and contrary, filling the HTML form by JSON model. These methods are illustrated below:

  SourceForge.net Logo   Support This Project