Skip to main content

A user-friendly tool to view, analyze, and interact with JSON and JSONL data.

Project description

freesimplejson 🚀

PyPI version Build Status License: MIT Python Version

A user-friendly tool to view, analyze, and interact with JSON and JSONL data.

freesimplejson provides an intuitive graphical interface built with FreeSimpleGUI to make JSON exploration seamless. It features a side-by-side view for raw JSON input and a structured tree display, along with powerful filtering capabilities using JSONPath.

✨ Key Features

  • Dual Pane Interface:
    • Left Pane: Input single JSON objects or multiple JSON objects in JSONL format (one JSON object per line).
    • Right Pane: Interactive tree view of the parsed JSON, clearly showing keys, values, levels, and hierarchy.
  • JSONL Support:
    • Handles JSONL files or input.
    • Displays the selected JSONL row in the tree view.
    • Efficiently loads large JSONL files (initially showing a subset if very large - feature mentioned in functions.md, implementation details may vary).
  • Interactive Tree View:
    • Expand and collapse nodes to explore complex JSON structures.
    • Clear distinction between keys and values.
  • JSONPath Filtering:
    • Filter the JSON data displayed in the tree view using JSONPath expressions for precise data extraction.
    • Quick help for JSONPath syntax.
  • Pretty Print:
    • Format the JSON in the input pane with a "Pretty JSON" button.
  • Status Bar: Provides feedback on operations and errors.

📸 Screenshots

Placeholder: Add screenshots of your application here! Showcasing the UI, tree view, and filtering in action would be great.

Example:

  • ![Main Interface](link_to_screenshot_main.png)
  • ![JSONPath Filter](link_to_screenshot_filter.png)

🛠️ Installation

  1. Clone the repository (or download the source):

    git clone https://github.com/fxyzbtc/freesimplejson.git
    cd pysimplejson
    
  2. Ensure you have Python 3.12+ installed.

  3. Install dependencies: The project uses uv for package management (as indicated by uv.lock). If you have uv installed:

    uv pip install -r requirements.txt 
    

    (You might need to generate requirements.txt from pyproject.toml first if it's not present: uv pip freeze > requirements.txt or uv pip compile pyproject.toml -o requirements.txt)

    Alternatively, using pip with pyproject.toml:

    pip install .
    

    This will install pysimplejson and its dependencies:

    • freesimplegui>=5.2.0.post1
    • jsonpath-ng>=1.7.0

🚀 Usage

To run the freesimplejson application:

python freesimplejson/main.py

Once the application starts:

  1. Paste your JSON or JSONL content into the "JSON Input" text area on the left.
  2. The JSON tree view on the right will automatically update.
    • If using JSONL, click on a line in the input (or have a mechanism to select a line) to see it in the tree view.
  3. Use the "JSONPath Filter" input and "Apply Filter" button to query the displayed JSON.
  4. Use "Expand All" / "Collapse All" for the tree view as needed.
  5. Use "Pretty JSON" to format the input in the left pane.

🧩 Dependencies

🤝 Contributing

Contributions are welcome! If you'd like to contribute, please follow these steps:

  1. Fork the repository.
  2. Create a new branch (git checkout -b feature/your-feature-name).
  3. Make your changes.
  4. Commit your changes (git commit -m 'Add some feature').
  5. Push to the branch (git push origin feature/your-feature-name).
  6. Open a Pull Request.

Please make sure to update tests as appropriate.

📜 License

This project is licensed under the MIT License - see the LICENSE.md file for details (assuming you will add one).

Placeholder: Create a LICENSE.md file with the MIT License text, or choose another license.


Generated with ❤️ by an AI assistant and your project details. Remember to replace placeholders like yourusername and add actual screenshots and a license file.

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

pysimplejson-0.1.3.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pysimplejson-0.1.3-py3-none-any.whl (7.6 kB view details)

Uploaded Python 3

File details

Details for the file pysimplejson-0.1.3.tar.gz.

File metadata

  • Download URL: pysimplejson-0.1.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.5.25

File hashes

Hashes for pysimplejson-0.1.3.tar.gz
Algorithm Hash digest
SHA256 cbcb51f3c2ebfd8a33c64d843ce59fbf48d5550deb0a9616af58b37799fd7033
MD5 93016504cf39e1f22853fc06daf0cb66
BLAKE2b-256 e734bc95b372bd107d8a0b76ce741c47ee43ea7cfb5214fdd4dad1cad679a70e

See more details on using hashes here.

File details

Details for the file pysimplejson-0.1.3-py3-none-any.whl.

File metadata

File hashes

Hashes for pysimplejson-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 c649848357c65e42ab2be58fcfeb75f6d54d56b0e9fb767092cfbe1ac95538f0
MD5 e0632112ba0f35ab2ef83aef07448a14
BLAKE2b-256 bbecbe176f6f48a917b038f370ad393c48d28c0863a59530168cecf3fbbddc85

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page