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:
- JSON: [RFC4627], [RFC7159], [RFC6901], [RFC6902], relative JSON Pointer [RELPOINTER] Draft v1 / 2018
- JSON schema: JSON schema [ZYP] Draft v4 / 2013
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:
- JSON Data : Manage branches of substructures - jsondata.jsondata [features] [API] [source]
- JSON Serializer : Serialize JSON documents - jsondata.jsondataserializer [features] [API] [source]
- JSON Pointer : Access pointer paths and values - jsondata.jsonpointer [features] [API] [source]
- JSON Patch : Modify data structures and values - jsondata.jsonpatch [features] [API] [source]
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.
Table of Contents¶
Indices and tables¶
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
- Pythonhosted: https://pythonhosted.org/timeatdate/
Licenses
Artistic-License-2.0(base license): ArtisticLicense20.html
Forced-Fairplay-Constraints(amendments): licenses-amendments.txt
[xkcd] Support the OpenSource Authors :-)
Downloads
- Python Package Index: https://pypi.python.org/pypi/timeatdate
- Sourceforge.net: https://sourceforge.net/projects/timeatdate/
- github.com: https://github.com/ArnoCan/timeatdate/