JSON Essentials™ for COM/ActiveX - Universal JSON toolkit for Windows |
Current version:
1.2.1
Released on:
2022.01.20
Overview | Where to use | Features | Code samples | JSON Schema | Compliance | Future perspectives
1 Overview
JSON Essentials™ for COM/ActiveX is a language independent JSON toolkit for rapid implementation of the most common JSON use cases on the Windows platform. JSON Essentials™ for COM/ActiveX is built with focus on exceptional standard compliance, performance, stability and simplicity. It can be used with any programming language and in development environment that supports COM/ActiveX API standard, including but not limited to the mainstream programming languages like C#, Visual Basic, C/C++, Delphi, Java, JavaScript, VB Script, TypeScript, PHP, Python, Matlab etc. It's native and flexible support of HTTP/HTTPS protocols makes it immediately ready for complex JSON REST applications.
JSON Essentials™ for COM/ActiveX provides different licensing options and product configurations that allow individual developers, non-profit and academic organizations to use the it for free, and allow commercial users to get only the needed functionality. Make your license choice.
2 Where to use
JSON data format has become the primary format for data exchange in most modern systems because it's simple, lightweight, cross-platform, but still powerful, thus the scope of application of JSON Essentials™ for COM/ActiveX is limited by one's imagination only. From keeping local configuration files in JSON format, organizing small datasets in JSON, to communicating with Web services that offer JSON API endpoints, etc. In the world of distributed systems and Service Oriented Architectures a simple to use, but still functional, fast and reliable JSON handling using JSON Essentials™ for COM/ActiveX can not only save time on development but also save cost on data processing, especially in cloud environments where CPU cycles directly translate to dollar amounts.
Here are just a few well-know major Web services to mention that require JSON as the main or the only mean of communication with the external world, and JSON Essentials™ for COM/ActiveX can handle all that for your Windows applications, services and scripts:
-
Nasdaq Data-On-Demand - Nasdaq provides institutional investors, fund managers and traders with financial analytics, and buy and sell signals derived from structured and unstructured data, and our machine intelligence engine. In high frequency trading systems hudreds or thousands of JSON requests and responses may occur in just a second. The ability to handle all those requests in time combined with effective trading logic defines success. A typical use case using JSON Essentials™ for COM/ActiveX would be a real-time and history stock information processing for subscribed tickers in order to reflecting stock data in a chart or trigerring buy-sell signals.
-
Facebook Graph API - The Facebook Graph API is the primary way to get data into and out of the Facebook platform. It's an HTTP-based API that apps can use to programmatically query data, post new stories, manage ads, upload photos, and perform a wide variety of other tasks. A typical use case using JSON Essentials™ for COM/ActiveX would be an automated synchronization of a company's public feed and Facebook ads with other social networks and/or centralized company's feed generator.
-
Google Cloud Storage JSON API overview - The Google Cloud Storage JSON API is a simple, JSON backed interface for accessing and manipulating Cloud Storage projects in a programmatic way. It is fully compatible with the Cloud Storage Client Libraries. A typical use case using JSON Essentials™ for COM/ActiveX would be a middleware implementation that uses Google Cloud services for implementing business logic and infrastructure layers.
-
PayPal API - PayPal's services allow people to make financial transactions online by granting the ability to transfer funds electronically between individuals and businesses.Through PayPal, users can send or receive payments for online auctions, purchase or sell goods and services, donate money or receive donations. It's JSON API allows automatic and managing fund flows, logging and reporting. A typical use case using JSON Essentials™ for COM/ActiveX would be an implementation of a PayPal Web hook for subscribing to account events for reading and processing all JSON notifications about financial actitivy in the monitored accounts.
3 Features
The following below growing list of features only briefly outlines capabilities of JSON Essentials™ for COM/ActiveX. Suggest a feature that you believe is worth adding.
Loading JSON from: |
string, file, stream, HTTP response, registry, language specific objects |
Writing JSON to: |
file, stream, HTTP request, registry |
Encoding support: |
UTF-8, UTF-16, UTF-32, Binary Order Mark |
JSON formatting options: |
indentation, spaces, newlines, escapes |
JSON DOM operations: |
JSON of a node, DOM traversal, node addition, node removal, node lookup, tree saving, node selecting, clearing, deep tree comparison, direct DOM values access, node annotations access |
JSON selectors: |
JSON pointer, relative JSON pointer, compiled selector expressions |
JSON Schema collection: |
manual schema adding, unresolved schema request, custom schema request callback, schema lookup, schema removal, clearing |
JSON Schema operations: |
instance validation, instance annotation, unknown schema resolving, schema standard identification |
HTTP capabilities: |
HTTP/HTTPS support, full HTTP request customization, x-www-form-urlencoded and multipart/form-data form data, HTTP timeouts configuration, collecting response status and headers, processing response body as binary/text or JSON DOM, one call JSON DOM request and response processing |
Non-functional: |
language independent, lightweight, exceptionally fast, strictly standard compliant, well documented, thoroughly tested |
4 Code samples
JScript/JavaScript: Create DOM | Parse DOM | Traverse DOM | Format JSON | Select node | Fast select node | Loading JSON file | Loading JSON from registry | Loading JSON code | Object to JSON DOM and Direct DOM Access | HTTP GET JSON request | HTTP PUT JSON request | Validate JSON against schema | Handle schema request | Annotate JSON against schema
C#: Create DOM | Parse DOM | Traverse DOM | Format JSON | Select node | Fast select node | Loading JSON file | Loading JSON from registry | Loading JSON code | Object to JSON DOM and Direct DOM Access | HTTP GET JSON request | HTTP PUT JSON request | Validate JSON against schema | Schema request via callback | Schema request via delegate | Annotate JSON against schema
Visual Basic: Create DOM | Parse DOM | Traverse DOM | Format JSON | Select node | Fast select node | Loading JSON file | Loading JSON from registry | Loading JSON code | Object to JSON DOM and Direct DOM Access | HTTP GET JSON request | HTTP PUT JSON request | Validate JSON against schema | Handle schema request | Annotate JSON against schema
5 JSON Schema support
JSON Essentials™ for COM/ActiveX v1.2.1 supports only Draft-07 JSON Schema standard for both validation and annotation. At the moment of its release it passes all required JSON Schema Test Suite tests for Draft-07. However it is not guaranteed that future updates in JSON Schema Test Suite released after will pass. In order to mititage such risks each package of JSON Essentials™ for COM/ActiveX includes a copy of the latest snapshot of the tests available right before its release for validating its functionality.
Support of newer standards Draft-2019-09 and Draft-2020-12 is currently under development.
6 Compliance
JSON Essentials™ for COM/ActiveX is compliant with:
- ECMA-404: The JSON data interchange syntax
- JSON Schema Specification: Draft7
- RFC-6901: JSON Pointer
- Relative JSON Pointer: Internet Draft
- RFC-3629: UTF-8, a transformation format of ISO 10646
- RFC-2781: UTF-16, an encoding of ISO 10646
- RFC-5198: Unicode Format for Network Interchange
- MS-OAUT: OLE Automation Protocol
- RFC-7231: Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content
- RFC-3986: Uniform Resource Identifier (URI): Generic Syntax
- RFC-1867: Form-based File Upload in HTML
- JSON Schema Test Suite (except some optional tests)
7 Future perspectives
Despite a humble start there is much more yet to be uncovered. Here is the brief outlook on what is getting ready to be released soon and what's in development:
- Highly configurable implementation for server platforms
- Dedicated free-threaded classes implementation
- Full support of all JSON Schema standards and drafts
- Open source cross-platform highly configurable and exceptionally fast JSON Essentials™ for C++