{"id":21886630,"url":"https://github.com/jujuadams/extendingjson","last_synced_at":"2025-04-15T08:52:00.321Z","repository":{"id":205363968,"uuid":"714056565","full_name":"JujuAdams/ExtendingJSON","owner":"JujuAdams","description":"Human-writeable JSON-like data formats for GameMaker","archived":false,"fork":false,"pushed_at":"2023-12-06T09:24:39.000Z","size":29,"stargazers_count":7,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-04-15T08:51:52.416Z","etag":null,"topics":["data","gamemaker","gamemaker-s","gms2","json","yaml"],"latest_commit_sha":null,"homepage":"","language":"Game Maker Language","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/JujuAdams.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-03T20:23:06.000Z","updated_at":"2025-04-14T19:10:30.000Z","dependencies_parsed_at":null,"dependency_job_id":"d4dcfa6e-6892-4485-ba2d-fd98da6cdd6d","html_url":"https://github.com/JujuAdams/ExtendingJSON","commit_stats":null,"previous_names":["jujuadams/extendingjson"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JujuAdams%2FExtendingJSON","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JujuAdams%2FExtendingJSON/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JujuAdams%2FExtendingJSON/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JujuAdams%2FExtendingJSON/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JujuAdams","download_url":"https://codeload.github.com/JujuAdams/ExtendingJSON/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":249040245,"owners_count":21202814,"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":["data","gamemaker","gamemaker-s","gms2","json","yaml"],"created_at":"2024-11-28T10:36:52.434Z","updated_at":"2025-04-15T08:52:00.303Z","avatar_url":"https://github.com/JujuAdams.png","language":"Game Maker Language","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eExtending JSON\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eHuman-writeable JSON-like data formats for GameMaker LTS 2022.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\u003ci\u003eYou may also be interested in \u003ca href=\"https://github.com/JujuAdams/SNAP\"\u003eSNAP\u003c/a\u003e, a standard data format and struct/array utility toolkit.\u003c/i\u003e\u003c/p\u003e\n\n\u0026nbsp;\n\nThanks to [@gnysek](https://github.com/gnysek) for the support!\n\nThis library focuses on a couple JSON-like formats that are designed to be maximally human-writeable. JSON is a great format, I love it, but it is a format that is more easily written and read by a computer than a human. This makes JSON unhelpful for situations where a human is likely to want to modify the data.\n\n\u0026nbsp;\n\n## Loose JSON\n\nLoose JSON is as it sounds - a looser form of JSON. It stands somewhere between JSON and YAML and attempts to combine the familiarity of the former with the writing convenience of the latter.\n\nLoose JSON focuses on being easy to write. It dispenses with commas and double quotes where they are not needed. Loose JSON can also contain single-line and multi-line comments. Any standard JSON is automatically parseable as Loose JSON, but Loose JSON isn't typically parseable as standard JSON.\n\nConsider the following JSON:\n\n```json\n{\n\t\"graphics\": {\n\t\t\"width\": 1920,\n\t\t\"height\": 1080,\n\t\t\"fullscreen\": true\n\t},\n\t\"names\": [\"john and yoko\", \"paul\", \"george\", \"ringo\"]\n}\n```\n\nThis could be written as the following loose JSON:\n\n```\n{\n\tgraphics: {\n\t\twidth: 1920\n\t\theight: 1080\n\t\tfullscreen: true\n\t}\n\tnames: [john and yoko, paul, george, ringo]\n}\n```\n\nIn Loose JSON, the keywords `true` and `false` (without quotes) are transformed into booleans as one would expect. The keyword `null` (again, without quotes) is converted into GameMaker's native `undefined` datatype.\n\nA string must be delimited using double quotes in the following situations:\n1. If a string needs to contain any reserved symbols (`:` `,` `\\n` `\\r` `{` `}` `[` `]`)\n2. If a string needs to be exactly `\"true\"` `\"false\"` or `\"null\"`\n3. If a string must contain whitespace at the start or end\n\nStrings can further contain escaped characters.\n\n\u0026nbsp;\n\n## Config JSON\n\nConfig JSON is an extension to the previously described Loose JSON but is even less strict. It allows for data to be defined and overwritten, something that is usually forbidden in standard JSON (including \"loose JSON\" above). In the case of integers and strings, values are overwritten. Structs and arrays, however, are merged together where possible.\n\n```\n{\n  // display info\n  height: 720,\n  width: 960,\n  width: 1280,\n  /* names */\n  names: [john and yoko],\n  names: [\"paul\", george, \"ringo\"],\n}\n```\n\nThis would result in GML struct:\n\n```\n{}\n |- height: 720\n |- names:[]\n |         |- \"john and yoko\"\n |         |- \"paul\"\n |         |- \"george\"\n |         \\- \"ringo\"\n \\- width: 1280\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjujuadams%2Fextendingjson","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjujuadams%2Fextendingjson","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjujuadams%2Fextendingjson/lists"}