Abstract

The jsondata package provides standards based processing of JSON data with emphasis on the management of modular structures including JSON-Pointer and JSON-Patch.

The data is represented as in-memory tree structures with dynamically added and removed components as branches. The data could be validated and stored for the later reuse. The emphasis is on low resource consumption, thus introcudes a slim layer covering the complex structure operations only, while the data itself is native Python data compatible to json, ujson and jsonschema.

Supported main standards and drafts:

The supported platforms are:

  • Linux, BSD, Unix, OS-X, Cygwin, and Windows
  • Python2, Python3

Cockpit

Component Standards/References HowTo shortcuts API
JSON Data [json] [ujson] [RFC8259] [RFC7159] [RFC4627] [ECMA404] Data jsondata.jsondata jsondata.jsondata.JSONData
JSON Pointer [RFC6901] Pointer jsondata.jsonpointer jsondata.jsonpointer.JSONPointer
JSON Relative Pointer [RELPOINTER] Draft v1 / 2018 Relative Pointer jsondata.jsonpointer jsondata.jsonpointer.JSONPointer
JSON Patch [RFC6902] Patch jsondata.jsonpatch jsondata.jsonpatch.JSONPatch
JSON Schema [jsonschema] [ZYP] Draft v4 / 2013 Schema jsondata.jsondata jsondata.jsondata.JSONData
JSON Persistency Export and import documents and branches Serialize jsondata.jsondataserializer jsondata.jsondataserializer.JSONSerializer
JSON Package init     jsondata jsondata.__init__
Artifacts Shortcuts
Concepts and Design Development Documents
Programming Interfaces jsondata
Related Projects External
Commandline Interface [jsoncli]
Compare and Analyse JSON Data [jsondatadiff]
Search JSON Pattern [jsondatafind]
Scan Commandline Options to JSON [jsoncliopts]
Compute JSON Data [jsoncompute]
JSON Unit Tests [jsondataunit]

Introduced file suffixes.

suffix  
json JSON data file
jsd JSON schema
jsonp JSON patch - RFC6902

Blueprint

The architecture is based on the interfaces of the packages json and jsonschema, and compatible packages such as ujson.

               +---------------------------------+
Applications   |         application-layer       |    see e.g. [jsonlathe], [restdrill]
Middeware      +---------------------------------+
.   .  .  .  .  . | .  .  .  .  .| .  .  .  .  | .  .  .  .  .  .  .  .  .
               + - - - - - - - - - - - - - - - - +    Libraries: [jsoncompute], [jsoncliopts], [jsondataunit],
Process JSON   |        processing tools         |    [jsondatadiff], [jsondatafind]
               + - - - - - - - - - - - - - - - - +    Command Line Interface: [jsoncli]
.   .  .  .  .  . | .  .  .  .  .| .  .  .  .  | .  .  .  .  .  .  .  .  .
                  |              V             |
                  |  +----------------------+  |
JSON Data         |  |       jsondata       |  |
  Data Structures |  |  jsondata.jsondata   |  |      [RFC8259]/[RFC7159]/[RFC4627]
  Pointer         |  | jsondata.jsonpointer |  |      [RFC6901]/draft-handrews-relative-json-pointer [RELPOINTER]
  Patch           |  |  jsondata.jsonpatch  |  |      [RFC6902]
                  |  +----------------------+  |
                  |         |       |          |
.  .  .  .  .  .  | .  .  . | .  .  | .  .  .  |  .  .  .  .  .  .  .  .  .
                  +----+----+       +-----+----+
                       |                  |
                       V                  V
               +----------------+-----------------+
JSON           |     [json]     |   [jsonschema]  |    [RFC8259]/[RFC7159]/[RFC4627]/[ECMA262]/[ECMA404]
Syntax         |     [ujson]    |                 |    draft-zyp-json-schema-04 [ZYP]
               +----------------+-----------------+

The provided features comprise:

The syntax primitives of underlying layers are processed by the imported standard packages json and jsonschema in conformance to related standards. For the examples including from standards refer to Howto . For the architecture refer to Software design.

Resources

Project Data

  • PROJECT=jsondata
  • MISSION=Provide a JSON toolset for computing - RFC7159, RFC6901, RFC6902, ...
  • AUTHOR=Arno-Can Uestuensoez
  • COPYRIGHT=Copyright (C) 2017 Arno-Can Uestuensoez @Ingenieurbuero Arno-Can Uestuensoez
  • LICENSE=Artistic-License-2.0 + Forced-Fairplay-Constraints
  • VERSION=0.2.22
  • RELEASE=0.2.22
  • STATUS=alpha

Online Documents

Licenses

Downloads