{"id":29027759,"url":"https://github.com/dackon/jtool","last_synced_at":"2025-06-26T07:01:38.753Z","repository":{"id":57489036,"uuid":"205788047","full_name":"dackon/jtool","owner":"dackon","description":"This project implemented JSON template, JSON schema \u0026 JSON operator. With these tools, you can move data processing from codes to configuration files.","archived":false,"fork":false,"pushed_at":"2020-12-04T03:06:10.000Z","size":163,"stargazers_count":8,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-06-16T06:07:29.825Z","etag":null,"topics":["json","json-schema","json-template"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dackon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-09-02T06:09:26.000Z","updated_at":"2024-04-17T05:06:36.000Z","dependencies_parsed_at":"2022-08-29T20:31:19.260Z","dependency_job_id":null,"html_url":"https://github.com/dackon/jtool","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dackon/jtool","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dackon%2Fjtool","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dackon%2Fjtool/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dackon%2Fjtool/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dackon%2Fjtool/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dackon","download_url":"https://codeload.github.com/dackon/jtool/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dackon%2Fjtool/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":262018661,"owners_count":23245614,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["json","json-schema","json-template"],"created_at":"2025-06-26T07:01:11.110Z","updated_at":"2025-06-26T07:01:38.740Z","avatar_url":"https://github.com/dackon.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Introduction\nThis project implemented a set of tools to create, manipulate and validate JSONs. It was created when I was developing a project (closed source, inspired by [Blueprints of UnrealEngine](https://docs.unrealengine.com/en-US/Engine/Blueprints/index.html)) which uses configuration files to define RESTful APIs. The project splited API handling to multiple stages (e.g., processing request stage, MySQL/MongoDB interact stage, Redis interact stage, 3rd-party API call stage, response stage, etc), all these stages share one JSON pool, and each stage can create the needed JSON as input from the JSON pool (by using template and operator), also, each stage can add its product JSON to the JSON pool for other stages to use.\n\n* [JSON template](./template) - Create JSON from multiple JSONs\n* [JSON schema](./schema) - Validate JSON against schema\n* [JSON operator](./operator) - Manipulate JSON\n\n\n## Example\nGiven JSON 'foo':\n```json\n{\n    \"a1\": 1\n}\n```\n\nGiven JSON 'bar':\n```json\n{\n    \"b1\": \"hello world\"\n}\n```\n\nGiven JSON template:\n```json\n{\n    \"f1\": \"*foo/a1\",\n    \"f2\": \"*bar/b1\"\n}\n```\n\nAfter executing the template, we can get the following JSON:\n```json\n{\n    \"f1\": 1,\n    \"f2\": \"hello world\"\n}\n```\n\nPlease read template [doc](./template) for more details.\n\n## Playground\n1. [template](https://play.golang.org/p/3JcUvPEvur7)\n2. [template \u0026 operator](https://play.golang.org/p/GWHASNc_BhN)\n3. [template with 2D array](https://play.golang.org/p/fsmTos14Kdo)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdackon%2Fjtool","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdackon%2Fjtool","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdackon%2Fjtool/lists"}