{"id":17861142,"url":"https://github.com/jonathanstowe/json-infer","last_synced_at":"2025-10-04T07:39:48.649Z","repository":{"id":54336418,"uuid":"41638015","full_name":"jonathanstowe/JSON-Infer","owner":"jonathanstowe","description":"Infer the structure of a JSON object and make some Raku class to represent it","archived":false,"fork":false,"pushed_at":"2023-07-03T13:07:51.000Z","size":98,"stargazers_count":3,"open_issues_count":3,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2023-07-03T15:04:28.448Z","etag":null,"topics":["json","object","raku","serialization"],"latest_commit_sha":null,"homepage":"","language":"Raku","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jonathanstowe.png","metadata":{"files":{"readme":"README.md","changelog":"Changes","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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2015-08-30T18:06:58.000Z","updated_at":"2023-07-03T15:04:28.448Z","dependencies_parsed_at":"2024-10-28T09:05:47.862Z","dependency_job_id":"9a958b5b-fe24-4380-9104-eaa044d85feb","html_url":"https://github.com/jonathanstowe/JSON-Infer","commit_stats":null,"previous_names":[],"tags_count":20,"template":null,"template_full_name":null,"purl":"pkg:github/jonathanstowe/JSON-Infer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanstowe%2FJSON-Infer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanstowe%2FJSON-Infer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanstowe%2FJSON-Infer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanstowe%2FJSON-Infer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jonathanstowe","download_url":"https://codeload.github.com/jonathanstowe/JSON-Infer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jonathanstowe%2FJSON-Infer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":276487465,"owners_count":25651133,"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-09-22T02:00:08.972Z","response_time":79,"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":["json","object","raku","serialization"],"created_at":"2024-10-28T08:43:02.602Z","updated_at":"2025-09-22T22:40:20.922Z","avatar_url":"https://github.com/jonathanstowe.png","language":"Raku","funding_links":[],"categories":[],"sub_categories":[],"readme":"# JSON::Infer\n\nCreate Raku classes to represent JSON data by some dodgy inference.\n\n![Build Status](https://github.com/jonathanstowe/JSON-Infer/workflows/CI/badge.svg)\n\n## Synopsis\n\nUse the script to do it simply:\n\n```\n# Create the module in the directory \"foo\"\n\nraku-json-infer --uri=http://api.mixcloud.com/spartacus/party-time/ --out-dir=foo --class-name=Mixcloud::Show\n\n```\n\nOr do it in your own code:\n\n```\n\nuse JSON::Infer;\n\nmy $obj = JSON::Infer.new();\nmy $ret = $obj.infer(uri =\u003e 'http://api.mixcloud.com/spartacus/party-time/', class-name =\u003e 'Mixcloud::Show');\n\nsay $ret.make-class; # Print the class definition\n\n```\n\n## Description\n\nJSON is nearly ubiquitous on the internet, developers love it for making\nAPIs.  However the webservices that use it for transfer of data rarely\nhave a machine readable specification that can be turned into code so\ndevelopers who want to consume these services usually have to make the\nclient definition themselves.\n\nThis module aims to provide a way to generate Raku classes that can represent\nthe data from a JSON source.  The structure and the types of the data is\ninferred from a single data item so the accuracy may depend on the\nconsistency of the data.\n\n## Installation\n\nAssuming you have a working Rakudo installation you should be able to install this with *zef* :\n\n    # From the source directory\n   \n    zef install .\n\n    # Remote installation\n\n    zef install JSON::Infer\n\nOther install mechanisms may be become available in the future.\n\n## Support\n\n\nSuggestions/patches are welcomed via github at https://github.com/jonathanstowe/JSON-Infer/issues\n\n## Licence\n\nThis is free software.\n\nPlease see the [LICENCE](LICENCE) file in the distribution for details.\n\n© Jonathan Stowe 2015, 2016, 2017, 2019, 2020, 2021\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanstowe%2Fjson-infer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjonathanstowe%2Fjson-infer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjonathanstowe%2Fjson-infer/lists"}