Skip to main content

Calculate the source map for a JSON document.

Project description

JsonSourceMap

Calculate JSON Pointers to each value within a JSON document along with the line, column and character position for the start and end of that value. For more information see: https://github.com/open-alchemy/json-source-map/wiki.

For example:

python -m pip install json_source_map
from json_source_map import calculate


print(calculate('{"foo": "bar"}'))

The above prints:

{
    '': Entry(
        value_start=Location(line=0, column=0, position=0),
        value_end=Location(line=0, column=14, position=14),
        key_start=None,
        key_end=None,
    ),
    '/foo': Entry(
        value_start=Location(line=0, column=8, position=8),
        value_end=Location(line=0, column=13, position=13),
        key_start=Location(line=0, column=1, position=1),
        key_end=Location(line=0, column=6, position=6),
    ),
}

Where:

  • each key in the dictionary is a JSON path to an item,
  • each value in the dictionarty contains the mapping of the item at the JSON path which have the following properties:
    • value_start is the start of the value,
    • value_end is the end of the value,
    • key_start is the start of the key (which is None at the root level and for array items),
    • key_end is the end of the key (which is None at the root level and for array items) and
  • each of the above have the following properties:
    • line is the zero-indexed line position,
    • column is the zero-indexed column position and
    • position is the zero-indexed character position in the string (independent of the line and column).

The following features have been implemented:

  • support for primitive types (strings, numbers, booleans and null),
  • support for structural types (array and object) and
  • support for space, tab, carriage and return whitespace.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

json_source_map-1.0.4.tar.gz (6.7 kB view hashes)

Uploaded source

Built Distribution

json_source_map-1.0.4-py3-none-any.whl (7.4 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page