Skip to main content

jsonjsc

CI - Test CI - Build PyPI - Version PyPI - Python Version

A Python library for parsing out C/Javascript style comments in JSON files.

Install

pip install jsonjsc

Features

  • Simple and easy to use library with no other dependencies.
  • Supports C/JS block (/* */) and single line (//) comments.
  • Retains the line number and character column of JSON content after parsing, letting syntax error positions get properly reported by the normal Python JSON decoder.
  • Is easily dropped into existing JSON library usage as a decoder class.
  • Test backed via unittest.

Python 2

jsonjsc v1.1.2 is the last version to support Python 2.7.

pip install jsonjsc==1.1.2

Example

import json
import jsonjsc

TEST_JSON_DECODER = r'''{
    /*
    This is a test of the JSON decoder in full
    */
    "test1": "message1", // this comment should parse out.

    // "junk1": "message",

    /*
    "junk2": "another message",
    */

    "test2": "message2"
}'''

test = json.loads(TEST_JSON_DECODER, cls=jsonjsc.JSONCommentDecoder)

print(test["test1"])

if "junk1" not in test:
    print("I guess junk1 was commented out?")

if "junk2" not in test:
    print("I guess junk2 was commented out too!")

print(test["test2"])

Development

jsonjsc uses Hatchling as a build backend and flake8 as a style guide.

$ pip install -e .

Hatch is the primary project manager of choice, but any project adhering to PEP 621 (pyproject.toml specification) can be used.

$ hatch shell

Tests

Tests can be ran with pytest. Hatch scripts are included for linting and testing.

# Lint
$ hatch run lint:all

# Test with current Python version
$ hatch run full
# Test with all Python versions
$ hatch run test:full

TODOs

Implementation could probably be sped up significantly as it uses character by character searches to test if comments are in string values or not. No performance metrics have been taken.

License

Licensed under the MIT License. See LICENSE for more information.

Release files for jsonjsc 1.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jsonjsc 1.2.0
File Size Uploaded
jsonjsc-1.2.0.tar.gz 5.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jsonjsc 1.2.0
File Interpreter ABI Platform
jsonjsc-1.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 10.1 kB

Release files / jsonjsc-1.2.0.tar.gz

Download URL jsonjsc-1.2.0.tar.gz
Size 5.9 kB
Tags Source
SHA-256 checksum
How to use checksums
6f20e705fa00da3be000c9b1f2d028f4ffbf55cfb35df0bac3679ec4bf048e8f
BLAKE2b-256 checksum
How to use checksums
c936584439e6bc0102d526eec74827523d74087b64def96be16fd249b8a273fc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.23.0

Release files / jsonjsc-1.2.0-py3-none-any.whl

Download URL jsonjsc-1.2.0-py3-none-any.whl
Size 4.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
88f12bfffceeccfe28e91b176734e13a7f1ca15d648bc06acc7f95f998031b55
BLAKE2b-256 checksum
How to use checksums
90df36eff9801ce9e8fdf1dd025b0ee14931da1d0cb7897dcc0d695fecd8f6cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via python-httpx/0.23.0

Release history Release notifications | RSS feed

This release

1.2.0 This release

2 release files

1.1.2

2 release files

1.1.1

2 release files

1.1.0

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page