{"id":26389213,"url":"https://github.com/alfredoprograma/json-parser","last_synced_at":"2025-11-01T12:04:53.086Z","repository":{"id":207690964,"uuid":"719865257","full_name":"AlfredoPrograma/json-parser","owner":"AlfredoPrograma","description":"JSON Parser written in Rust from beginner to beginners.","archived":false,"fork":false,"pushed_at":"2023-11-22T02:55:31.000Z","size":33,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-03-17T09:17:19.879Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AlfredoPrograma.png","metadata":{"files":{"readme":"README.Md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-11-17T04:03:31.000Z","updated_at":"2023-11-27T03:01:07.000Z","dependencies_parsed_at":"2023-11-22T03:23:35.753Z","dependency_job_id":null,"html_url":"https://github.com/AlfredoPrograma/json-parser","commit_stats":null,"previous_names":["alfredoprograma/json-parser"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/AlfredoPrograma/json-parser","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlfredoPrograma%2Fjson-parser","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlfredoPrograma%2Fjson-parser/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlfredoPrograma%2Fjson-parser/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlfredoPrograma%2Fjson-parser/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AlfredoPrograma","download_url":"https://codeload.github.com/AlfredoPrograma/json-parser/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AlfredoPrograma%2Fjson-parser/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":279015057,"owners_count":26085643,"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","status":"online","status_checked_at":"2025-10-13T02:00:06.723Z","response_time":61,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":[],"created_at":"2025-03-17T09:17:22.598Z","updated_at":"2025-10-13T12:36:50.569Z","avatar_url":"https://github.com/AlfredoPrograma.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSON Parser (by a Rust Beginner)\nThis project is a simple JSON parser developed in Rust. It's designed as a beginner's project, making it perfect for those just starting out with Rust and looking to understand how to work with JSON data and the [Nom](https://docs.rs/nom/latest/nom/) parsing crate.\n\n## Introduction\nA few weeks ago, I was eager to learn, especially about an exciting and \"low level\" language, so I decided to start my **Rust learning journey**. I've been struggling a bit (*especially with lifetimes* 🫠), but nothing that can't be overcome with practice and research. As I became comfortable with my current knowledge, I decided to write my own **JSON Parser**.\n\nThe parser implementation is simple; it merely takes a raw **JSON** string and translates it into a tree-based structure in **Rust** comprised of nested `enums`. These `enums` encapsulate valid **JSON values** and aim to follow the rules provided by the [JSON specification](https://www.json.org/json-en.html).\n\n## Features\n- Parses a **raw JSON string** into a tree-based data structure composed of nested `enums`.\n- Handles different **JSON data types**: `null, string, boolean, number, array, and object`.\n- Catches invalid **JSON strings** and throws respective errors.\n- Uses only one dependency ([Nom as a parser combinator library](https://docs.rs/nom/latest/nom/)).\n\n## Installation\nTo install the **JSON parser**, you need to have **Rust** installed on your machine. If you don't have Rust installed, you can download it from the [official Rust website](https://www.rust-lang.org/tools/install).\n\nOnce you have Rust installed, you can clone this repository:\n```bash\ngit clone https://github.com/AlfredoPrograma/json-parser.git\ncd json-parser\n```\n\n## Example\nRun the program to see an example:\n```bash\ncargo run\n```\nThis will print the parsed structure built based on the `example.json` file. Feel free to modify and complicate the JSON file, then run the program again to see the parsed JSON in the output.\n\n## To be continued...\nI will continue my learning journey with Rust, as I find it to be a fun and complex language that I should use to solve niche and specific problems.\n\nAs for improving this project, I feel I've accomplished my goal, so I won't enhance it in the short term. But who knows...","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfredoprograma%2Fjson-parser","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falfredoprograma%2Fjson-parser","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falfredoprograma%2Fjson-parser/lists"}