{"id":43549682,"url":"https://github.com/nmeylan/json-table-editor","last_synced_at":"2026-02-03T19:13:59.702Z","repository":{"id":236339063,"uuid":"792405131","full_name":"nmeylan/json-table-editor","owner":"nmeylan","description":"A tool to view JSON array as table, to ease visualisation and edition of large json array with performance as main objective ","archived":false,"fork":false,"pushed_at":"2025-08-17T18:38:10.000Z","size":67672,"stargazers_count":42,"open_issues_count":24,"forks_count":5,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-08-17T20:34:53.329Z","etag":null,"topics":["grid","json","json-editor","json-editor-online","json-to-table","json-viewer","json-visualizer","rust","tool","ui"],"latest_commit_sha":null,"homepage":"https://jsontable.app","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nmeylan.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-04-26T15:47:25.000Z","updated_at":"2025-08-17T18:37:18.000Z","dependencies_parsed_at":"2024-08-29T06:44:48.984Z","dependency_job_id":"7570f65a-8f88-4a21-ae2e-5e1f1137f40d","html_url":"https://github.com/nmeylan/json-table-editor","commit_stats":null,"previous_names":["nmeylan/json-editor","nmeylan/json-table-editor"],"tags_count":20,"template":false,"template_full_name":null,"purl":"pkg:github/nmeylan/json-table-editor","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeylan%2Fjson-table-editor","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeylan%2Fjson-table-editor/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeylan%2Fjson-table-editor/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeylan%2Fjson-table-editor/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nmeylan","download_url":"https://codeload.github.com/nmeylan/json-table-editor/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nmeylan%2Fjson-table-editor/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29054198,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-03T15:43:47.601Z","status":"ssl_error","status_checked_at":"2026-02-03T15:43:46.709Z","response_time":96,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":["grid","json","json-editor","json-editor-online","json-to-table","json-viewer","json-visualizer","rust","tool","ui"],"created_at":"2026-02-03T19:12:17.508Z","updated_at":"2026-02-03T19:13:54.648Z","avatar_url":"https://github.com/nmeylan.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Important\n**Memory usage**: While this tool allow to edit large json file smoothly, it consumes a lot of memory due to technical decision which tradeoff memory in favor of better performance for navigation, edition and serialization. Read below section \"Performance and Memory usage\" for more details\n\n[Web demo](https://nmeylan.github.io/json-table-editor/web/) \n\n# Genesis\nI wanted to edit a [small json file](https://github.com/nmeylan/rust-ro/blob/master/config/skill.json) of 1.5mb, using a table view, javascript based tools like http://json2table.com/# and https://jsongrid.com/json-grid were too slow to edit this file and barely usable, so I decided to attempt to do it myself\n\n# Features\n## Implemented\n- *lag-free* visualisation of large json array: only visible rows and columns are rendered\n- Select column to render\n- Filter out rows with null value at given columns\n- Scroll to column\n- Pin columns to left\n- Open nested array in sub-table\n- Open nested Object in sub-table\n- Select depth for nested object\n- Edit cell\n- Filter columns by values\n- Go to row number\n- Search for matching terms\n- Copy/Paste cell\n- Insert row above/below another row\n\n# Usage\n- You can launch the tool without arguments by executing the executable\n- You can launch the tool with arguments `./json-editor [PATH_TO_JSON] [JSON_POINTER]`\n- Right click on cells to display a contextual menu\n\n![](.github/json-editor.png)\n\nJson in video below is 372mb with an array of 309_759 entries, containing nested objects, it runs at ~60fps on an intel graphics chipset (Mesa UHD 630) as only visible cell are rendered\n\n\nhttps://github.com/nmeylan/json-table-editor/assets/1909074/6a4f932d-031c-4611-9627-2e2787da5401\n\n\n![view demo video](https://github.com/nmeylan/json-table-editor/blob/master/github/json-table-editor-alpha-2024-06-23.mp4)\n\n\n## Performance and Memory usage\nThis editor use a custom json parser to deserialize json into a flat data structure allowing `O(n)` data access where `n` is number of fields of an array element, containing `k` elements. In general `n` not bigger than 200 but `k` can easily be \u003e100000. \nWhile it is not the fastest parser on the market, it is still faster to use our custom parser instead of parsing using serde or other library generating tree data structure and then convert it to flat data structure. \n\nAs this structure is flat, it also allows to parse only a subset of json files by defining a depth limit, the json files is still fully read but after a given depth, \ncontent is not deserialize we only keep raw content as String which then can be parse later, by changing depth.\n\nThis mechanism allow fast parsing of big json files, but consume more memory as for each depth level we store the full string and the parsed content.\nAdditionally, this mechanism allow to serialize only row that have been changed, unchanged rows are already serialized, speeding up edition of big files.\n\n# Disclaimers\nThis tool has not yet reached a stable version, thus it has the following limitations:\n\n- If you open a non-valid json file, tool will crash, there is currently no graceful handling for json parser error\n- If you open a json file starting by an object, you will be able to edit an array of your choice at the given `json pointer`, When you do `save`, it will only save this array\nOriginal json file\n```json\n{\"skills\": [], \"count\":  1000}\n```\nIf you select pointer `/skills`, then save, it will produce this file\n```json\n{\"skills\": []}\n```\n\n# About\nLicence: Apache 2\n\nCredits: this project would not have been possible without [egui](https://github.com/emilk/egui) and its community, and maintainers of [dependencies](https://github.com/nmeylan/json-table-editor/blob/master/Cargo.lock) used by this project","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmeylan%2Fjson-table-editor","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnmeylan%2Fjson-table-editor","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnmeylan%2Fjson-table-editor/lists"}