MOSP is a platform for creating, editing and sharing validated JSON objects of any type.

Overview

MONARC Objects Sharing Platform

MOSP logo

Latest release License Contributors Stars Workflow Translation status

Presentation

MOSP is a platform for creating, editing and sharing validated JSON objects of any type.

MOSP panorama

You can use any available JSON schemas in order to create new JSON objects via a Web form dynamically generated and based on the selected JSON schema.

Since MOSP is a collaborative platform, all changes to JSON objects are tracked.

It is also possible to interact with MOSP programmatically thanks to its API. You can use PyMOSP if you need a client.

As example you can have a look at official instance operated by CASES and more particularly the objects shared by the MONARC project. The goal is to gather security related JSON objects, in the first place aimed to be used with MONARC. Some JSON objects can be exported to a MISP galaxy.

Installation

There are different ways to deploy MOSP.

Clone the repository and use a Python virtualenv

$ git clone https://github.com/CASES-LU/MOSP.git
$ cd MOSP/
$ npm install
$ poetry install
$ poetry shell
$ pybabel compile -d mosp/translations
$ export FLASK_APP=runserver.py
$ export FLASK_ENV=development
$ flask db_create
$ flask db_init
$ flask import_licenses_from_spdx
$ flask create_admin --login <login> --password <password>
$ flask run
 * Serving Flask app "runserver" (lazy loading)
 * Environment: development
 * Debug mode: on
 * Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
 * Restarting with stat
 * Debugger is active!
 * Debugger PIN: 221-873-938

Deploy to Heroku

Manually with some simple commands:

$ git clone https://github.com/CASES-LU/MOSP.git
$ cd MOSP/
$ heroku create --region eu <name-of-your-instance>
$ heroku addons:add heroku-postgresql:hobby-dev
$ heroku config:set APPLICATION_SETTINGS='heroku.cfg'
$ heroku buildpacks:add --index 1 heroku/python
$ heroku buildpacks:add --index 2 https://github.com/heroku/heroku-buildpack-nodejs
$ git push heroku master
$ heroku run init
$ heroku run flask import_licenses_from_spdx
$ heroku ps:scale web=1

or simply with this button:

Deploy to Heroku

The default credentials are admin for the login and password for the password.

If you want to create other users programmatically:

$ heroku run flask create_user --login <nickname> --password <password>
$ heroku run flask create_admin --login <nickname> --password <password>

Contributing

Contributions are welcome and there are many ways to participate to the project. You can contribute to MOSP by:

  • reporting bugs;
  • suggesting enhancements or new features;
  • improving the documentation;
  • creating new objects on our instance.

Feel free to fork the code, play with it, make some patches and send us pull requests.

There is one main branch: what we consider as stable with frequent updates as hot-fixes.

Features are developed in separated branches and then regularly merged into the master stable branch.

Flask is used for the backend. Please use black for the syntax of your Python code.

Vanilla JS is the JavaScript framework used.

Documentation

A documentation is available on the MONARC website.

License

This software is licensed under GNU Affero General Public License version 3

  • Copyright (C) 2018-2021 Cédric Bonhomme
  • Copyright (C) 2018-2021 SECURITYMADEIN.LU

For more information, the list of authors and contributors is available.

Comments
  • Final report

    Final report

    Hello, when I generate the final report, I have an issue when opening the doc file. MS Word says : "Word found unreadable content in "xxxxx.docx". Do you want to recover the contents of this document? If you trust the source of this document, click Yes." It seems related to the tables embedded in the document.

    opened by slouies 2
  • Don't use unspecific JSON Schema version

    Don't use unspecific JSON Schema version

    In your JSON Schema files (Such as https://objects.monarc.lu/schema/def/16), you're using a $schema value of http://json-schema.org/schema#.

    This means that you will always use the latest published, which is really not what you want.

    I'm not sure what your chosen implementation does when presented with an unknown dialect URI in $schema. It may just use the latest version.

    If you werer to update the impelementation today, your schemas would not be processed correctly, and you'd likely end up with data passing validation when it should not, and errors being thrown when they should not be.

    I don't know which draft/version you intended to use, but the implementation supports draft-03 through 2020-12.

    If you put that URI in your browser, you'll be greeterd with the following message and a redirect...

    Several redirections on json-schema.org are special cases:

    The unversioned meta-schema URIs should no longer be used. The vocabularies are represented by their specification text. The "latest" specification URIs are for convenice of browser bookmarking only.

    opened by Relequestual 2
  • build(deps): bump moment from 2.29.1 to 2.29.2

    build(deps): bump moment from 2.29.1 to 2.29.2

    Bumps moment from 2.29.1 to 2.29.2.

    Changelog

    Sourced from moment's changelog.

    2.29.2 See full changelog

    • Release Apr 3 2022

    Address https://github.com/advisories/GHSA-8hfj-j24r-96c4

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Bump lodash from 4.17.15 to 4.17.19

    Bump lodash from 4.17.15 to 4.17.19

    Bumps lodash from 4.17.15 to 4.17.19.

    Release notes

    Sourced from lodash's releases.

    4.17.16

    Commits
    Maintainer changes

    This version was pushed to npm by mathias, a new releaser for lodash since your current version.


    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • Rendering a graph with the relations between schemas of the platform

    Rendering a graph with the relations between schemas of the platform

    A new page which will render a graph with the relations between schemas would be really nice. If the schemas are well defined we must end-up with a graph representing the database of MONARC (described with JSON schemas).

    feature request 
    opened by cedricbonhomme 1
  • Add the possibility to create collections

    Add the possibility to create collections

    A collection would be a named set of objects from a MOSP instance.

    For example CASES would be able to create the collection named "Security measures for MONARC". This collection can be dynamic:

    • defined by one or several JSON schema(s). All objects instantiated with one of the JSON schemas will be part this collection.

    And static:

    • simply a list of cherry picked objects, from different schemas and organizations.

    Also both static and dynamic.

    Note: objects from a collection can be objects from different organizations.

    Finally this will enable to share a set of related objects with a nice URL, like:

    • http://objects.monarc.lu/collection/Security-referentials, or
    • http://objects.monarc.lu/collection/UUID-of-the-collection
    enhancement 
    opened by cedricbonhomme 1
  • Search on objects feature

    Search on objects feature

    Add the possibility to search through all the objects validated by a specific schema. This is kind of a meta-search, since we do not know in advance what are the search criteria. It will depend on the schema.

    The search form can be generated thanks to the schema, by calculating all the possible paths that an object can have. Example will follow.

    enhancement 
    opened by cedricbonhomme 1
  • Adding a license to a JSON object

    Adding a license to a JSON object

    Users should be able to specify a license for their contributions (the JSON objects).

    Maybe we can add a input (ListItem) in the object creation form. The input would be a list of licenses (from https://spdx.org/licenses/licenses.json). Like its done with Freshermeat.

    Should we let the user select several licenses of an object?

    By default AGPL can be selected. If the user specify nothing.

    enhancement 
    opened by cedricbonhomme 1
  • build(deps): bump moment from 2.29.3 to 2.29.4

    build(deps): bump moment from 2.29.3 to 2.29.4

    Bumps moment from 2.29.3 to 2.29.4.

    Changelog

    Sourced from moment's changelog.

    2.29.4

    • Release Jul 6, 2022
      • #6015 [bugfix] Fix ReDoS in preprocessRFC2822 regex
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies javascript 
    opened by dependabot[bot] 0
  • build(deps): bump lxml from 4.8.0 to 4.9.1

    build(deps): bump lxml from 4.8.0 to 4.9.1

    Bumps lxml from 4.8.0 to 4.9.1.

    Changelog

    Sourced from lxml's changelog.

    4.9.1 (2022-07-01)

    Bugs fixed

    • A crash was resolved when using iterwalk() (or canonicalize()) after parsing certain incorrect input. Note that iterwalk() can crash on valid input parsed with the same parser after failing to parse the incorrect input.

    4.9.0 (2022-06-01)

    Bugs fixed

    • GH#341: The mixin inheritance order in lxml.html was corrected. Patch by xmo-odoo.

    Other changes

    • Built with Cython 0.29.30 to adapt to changes in Python 3.11 and 3.12.

    • Wheels include zlib 1.2.12, libxml2 2.9.14 and libxslt 1.1.35 (libxml2 2.9.12+ and libxslt 1.1.34 on Windows).

    • GH#343: Windows-AArch64 build support in Visual Studio. Patch by Steve Dower.

    Commits
    • d01872c Prevent parse failure in new test from leaking into later test runs.
    • d65e632 Prepare release of lxml 4.9.1.
    • 86368e9 Fix a crash when incorrect parser input occurs together with usages of iterwa...
    • 50c2764 Delete unused Travis CI config and reference in docs (GH-345)
    • 8f0bf2d Try to speed up the musllinux AArch64 build by splitting the different CPytho...
    • b9f7074 Remove debug print from test.
    • b224e0f Try to install 'xz' in wheel builds, if available, since it's now needed to e...
    • 897ebfa Update macOS deployment target version from 10.14 to 10.15 since 10.14 starts...
    • 853c9e9 Prepare release of 4.9.0.
    • d3f77e6 Add a test for https://bugs.launchpad.net/lxml/+bug/1965070 leaving out the a...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies python 
    opened by dependabot[bot] 0
  • new: [log-events] added new Event model.

    new: [log-events] added new Event model.

    What does it do?

    Originally posted by cedricbonhomme February 15, 2022 New functionality to log specific kind of events. For example:

    • an object is viewed from the HTML page;
    • an object is deleted;
    • the import of an object via the API;
    • the import of an object via the API from a MONARC instance (when user agent is MONARC);
    • requests from a MONARC Stats Service instance (when user agent is Stats service);
    • etc.

    Updates to object are already logged since objects are versioned.

    This will allow us to plot more stats.

    Questions

    • [Yes] Does it require a DB change?
    • [No] Are you using it in production?

    Release Type:

    • [X] Major
    • [ ] Minor
    • [ ] Patch
    opened by cedricbonhomme 0
  • Rewrite API v1 with Flask-Restless-ng

    Rewrite API v1 with Flask-Restless-ng

    Rewrite API v1 with Flask-Restless-ng. Already started. Flask-Restless is no more maintained since years. Flask-Restless-ng seems to be a valid candidate to be used for the API v1. But the goal in mid term is to only use the API v2.

    feature request technical debt 
    opened by cedricbonhomme 1
  • Deletion of JSON schemas

    Deletion of JSON schemas

    How to handle the deletion of JSON schemas? Especially when a schema from an organization has been used to generate an object in an other organization.

    Maybe the deletion of the schema should be blocked until no more objects are referenced by the schema.

    enhancement 
    opened by cedricbonhomme 1
  • Copy a schema from an organization to an other

    Copy a schema from an organization to an other

    A feature which will let a user copy a public schema to one of her/his associated organizations would be useful for the users. This would be a sort of fork. This is actually possible manually.

    enhancement 
    opened by cedricbonhomme 0
Releases(v0.17.1)
  • v0.17.1(Oct 28, 2021)

    What's Changed

    • Translated using Weblate (French) in https://github.com/CASES-LU/MOSP/pull/48 and many more new languages.
    • Added type check with mypy.
    • [templates] added functionality to share a collection on social websites via the btn-group menu.

    Full Changelog: https://github.com/CASES-LU/MOSP/compare/v0.17.0...v0.17.1

    Source code(tar.gz)
    Source code(zip)
  • v0.17.0(Sep 30, 2021)

    This release introduces the management of collection of objects (https://github.com/CASES-LU/MOSP/issues/9). See the changelog for more details.

    Screenshot_20210930_145437

    Source code(tar.gz)
    Source code(zip)
  • v0.16.0(Sep 15, 2021)

  • v0.15.0(Jul 29, 2021)

  • v0.14.0(Jun 17, 2021)

    Notable changes

    News

    • [core] Added self-registration for the users with email confirmation;
    • [api v2] Added new API (OpenAPI Specification);
    • [views] Generation of an Atom feed of the schemas recently published and updated on MOSP;
    • [views] Generation of an Atom feed of the objects recently published and updated on MOSP;
    • [organizations] A user can now join an organization which has no membership restriction and as well leave an organization.

    Improvements

    Many improvements to the user interface.

    See the CHANGELOG for the details.

    Source code(tar.gz)
    Source code(zip)
  • v0.13(Apr 23, 2020)

    News

    • added new API which is returning data about relations between JSON schemas hosted on the platform. These data are generated with the networkx Python library and returned as JSON object compatible with D3.js;
    • added a new D3.js graph which is using the new API;
    • added a new view which presents all relations (refs) of a JSON object (self, external and recursive references are supported).

    Improvements

    • various minor improvements and bug fixes.
    Source code(tar.gz)
    Source code(zip)
  • v0.12(Apr 9, 2020)

    News

    • added email attribute for users;
    • added password recovery feature (#13);
    • added a view which returns the definition of a schema (text/plain). This is used for external references in JSON schemas.

    Improvements

    • improved generation of MISP clusters from an object: all values (properties) not directly useful for the context of the current schema in MONARC are assigned to the key 'meta';
    • migrate form Flask-Script to the built-in integration of the click command line interface of Flask;
    • updated JSON-editor for the JSON objects and added a new simple editor for the JSON schemas;
    • various minor improvements and bug fixes.
    Source code(tar.gz)
    Source code(zip)
  • v0.11(Feb 3, 2020)

  • v0.10(Dec 19, 2019)

    • added token based authentication for the API. Documentation is available: https://github.com/CASES-LU/MOSP-documentation/blob/master/index.adoc#using-the-api
    • the project is now using poetry.

    Screenshot_20191219_130744

    Source code(tar.gz)
    Source code(zip)
  • v0.9(Dec 12, 2019)

    • major improvements to the structure of the backend and to the models;
    • introduction of tests with pytest;
    • now using GitHub test workflow (GitHub Actions);
    • added app.json file for easy deployment with the Heroku button.
    Source code(tar.gz)
    Source code(zip)
  • v0.8(Nov 28, 2019)

    • Add a warning when the UUID of new a object is already taken (#14);
    • Generation of MISP galaxies and clusters based on an object from MOSP (#15);
    • Add a button in order to help the user generate a UUID easily (#16);
    • Added a way to list the recently created/updated objects for an administrator;
    • Added shortcuts to create new users and organizations. Simplify the creation of new users/organizations;
    • The footprint of objects is no more displayed;
    • Improved the performances on JsonObject GET many by removing useless attributes from the result;
    • updated Bootstrap to the version 4.4.
    Source code(tar.gz)
    Source code(zip)
  • v0.7(Sep 12, 2019)

    • it is now possible to specify linkgs between objects when creating a new one;
    • it is now possible to acces to an object with its id or with the UUID of the JSONB object attribute of this object (objects.monarc.lu/object/);
    • it is now possible to copy an object from one organization to an other (#11);
    • it is now possible to download all JSON objects validated by a schema. Objects are returned in a flattened list;
    • the contact e-mail address from the terms page is now using the one defined in the configuration file;
    • updated version of json-editor used in the project.
    Source code(tar.gz)
    Source code(zip)
  • v0.6(Mar 11, 2019)

    • added the possibility to link objects (#8);
    • the footprint (SHA 256 sum of objects is now displayed);
    • added the possibility to copy an object to the clipboard;
    • added a terms page;
    • improved the organization page;
    • improved the admin/users page;
    • minor UI fixes.
    Source code(tar.gz)
    Source code(zip)
  • v0.5(Feb 23, 2019)

    • major improvements to the API. It is now possible to create a valid JSON object programmatically with the HTTP POST method. The validity of the submitted object is checked against the specified JSON schema;
    • the project has now an official logo (#7);
    • a human.txt file has been added (https://objects.monarc.lu/human.txt).
    • various fixes and UI improvements. All views have been improved;
    • a documentation is now available and will be improved (https://www.monarc.lu/documentation/MOSP-documentation).
    Source code(tar.gz)
    Source code(zip)
  • v0.4(Oct 5, 2018)

    • it is now possible to select one or several licenses for an object (#2). A script is provided in order to initialize the database with licenses from https://spdx.org/licenses/licenses.json;
    • the values of a JSON object can now be exported to a CSV file;
    • the management of permissions has been improved;
    • added a new profile page for users;
    • various fixes and UI improvements.
    Source code(tar.gz)
    Source code(zip)
  • v0.3.0(Jun 1, 2018)

    • new Web interface to list, create and edit JSON schemas;
    • improved management of users. It is now possible to block a user;
    • translations improvements;
    • various UI improvements.
    Source code(tar.gz)
    Source code(zip)
  • v0.2.0(May 30, 2018)

    • the JSONB PostgreSQL type is now used instead of the JSON type;
    • the JSON editor has been upgraded and is now properly working with Bootstrap 4.1;
    • the interface to edit JSON data has been revamped and is a lot cleaner;
    • DataTables is now used for all tables;
    • a new interface displays all the JSON schemas in the organization(s) of a user;
    • a panel to manage users of the platform has been added;
    • the Web interface is internationalized in French (80% of strings are actually translated);
    • various UI improvements.
    Source code(tar.gz)
    Source code(zip)
  • v0.1.0(May 13, 2018)

    • first beta release of MOSP;
    • basic features are implemented: management of JSON objects, management of JSON schemas, management of users and organizations;
    • it is possible to edit a JSON object with a JSON editor which is generated thanks to the JSON schemas;
    • a basic API let the user interact programmatically with the JSON objects.
    Source code(tar.gz)
    Source code(zip)
Owner
CASES Luxembourg
Cyberworld Awareness and Security Enhancement Services
CASES Luxembourg
Same as json.dumps or json.loads, feapson support feapson.dumps and feapson.loads

Same as json.dumps or json.loads, feapson support feapson.dumps and feapson.loads

boris 5 Dec 1, 2021
Creates fake JSON files from a JSON schema

Use jsf along with fake data generators to provide consistent and meaningful fake data for your system.

Andy Challis 86 Jan 3, 2023
Json utils is a python module that you can use when working with json files.

Json-utils Json utils is a python module that you can use when working with json files. it comes packed with a lot of featrues Features Converting jso

Advik 4 Apr 24, 2022
Random JSON Key:Pair Json Generator

Random JSON Key:Value Pair Generator This simple script take an engish dictionary of words and and makes random key value pairs. The dictionary has ap

Chris Edwards 1 Oct 14, 2021
With the help of json txt you can use your txt file as a json file in a very simple way

json txt With the help of json txt you can use your txt file as a json file in a very simple way Dependencies re filemod pip install filemod Installat

Kshitij 1 Dec 14, 2022
Ibmi-json-beautify - Beautify json string with python

Ibmi-json-beautify - Beautify json string with python

Jefferson Vaughn 3 Feb 2, 2022
jq for Python programmers Process JSON and HTML on the command-line with familiar syntax.

jq for Python programmers Process JSON and HTML on the command-line with familiar syntax.

Denis Volk 3 Jan 9, 2022
A daily updated JSON dataset of all the Open House London venues, events, and metadata

Open House London listings data All of it. Automatically scraped hourly with updates committed to git, autogenerated per-day CSV's, and autogenerated

Jonty Wareing 4 Jan 1, 2022
A JSON utility library for Python featuring Django-style queries and mutations.

JSON Enhanced JSON Enhanced implements fast and pythonic queries and mutations for JSON objects. Installation You can install json-enhanced with pip:

Collisio Technologies 4 Aug 22, 2022
Console to handle object storage using JSON serialization and deserealization.

Console to handle object storage using JSON serialization and deserealization. This is a team project to develop a Python3 console that emulates the AirBnb object management.

Ronald Alexander 3 Dec 3, 2022
Python script to extract news from RSS feeds and save it as json.

Python script to extract news from RSS feeds and save it as json.

Alex Trbznk 14 Dec 22, 2022
Roamtologseq - A script loads a json export of a Roam graph and cleans it up for import into Logseq

Roam to Logseq The script loads a json export of a Roam graph and cleans it up f

Sebastian Pech 4 Mar 7, 2022
No more boilerplate to check and build a Python object from JSON.

JSONloader This module is for you if you're tired of writing boilerplate that: builds a straightforward Python object from loaded JSON. checks that yo

null 3 Feb 5, 2022
JSON Interoperability Vulnerability Labs

JSON Interoperability Vulnerability Labs Description These are the companion labs to my research article "An Exploration of JSON Interoperability Vuln

Bishop Fox 168 Dec 25, 2022
A tools to find the path of a specific key in deep nested JSON.

如何快速从深层嵌套 JSON 中找到特定的 Key #公众号 在爬虫开发的过程中,我们经常遇到一些 Ajax 加载的接口会返回 JSON 数据。

kingname 56 Dec 13, 2022
cysimdjson - Very fast Python JSON parsing library

Fast JSON parsing library for Python, 7-12 times faster than standard Python JSON parser.

TeskaLabs 235 Dec 29, 2022
simplejson is a simple, fast, extensible JSON encoder/decoder for Python

simplejson simplejson is a simple, fast, complete, correct and extensible JSON <http://json.org> encoder and decoder for Python 3.3+ with legacy suppo

null 1.5k Jan 5, 2023
A fast JSON parser/generator for C++ with both SAX/DOM style API

A fast JSON parser/generator for C++ with both SAX/DOM style API Tencent is pleased to support the open source community by making RapidJSON available

Tencent 12.6k Dec 30, 2022
simdjson : Parsing gigabytes of JSON per second

JSON is everywhere on the Internet. Servers spend a *lot* of time parsing it. We need a fresh approach. The simdjson library uses commonly available SIMD instructions and microparallel algorithms to parse JSON 4x faster than RapidJSON and 25x faster than JSON for Modern C++.

null 16.3k Dec 29, 2022