{"id":22117695,"url":"https://github.com/prosumma/iatheto","last_synced_at":"2026-03-17T18:37:42.519Z","repository":{"id":85504718,"uuid":"52895222","full_name":"Prosumma/Iatheto","owner":"Prosumma","description":"A simple JSON framework","archived":false,"fork":false,"pushed_at":"2025-06-12T02:38:18.000Z","size":112,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-03-07T09:33:04.004Z","etag":null,"topics":["json","json-parser"],"latest_commit_sha":null,"homepage":"","language":"Swift","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/Prosumma.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":"2016-03-01T17:17:20.000Z","updated_at":"2025-06-12T02:38:05.000Z","dependencies_parsed_at":"2023-03-05T12:15:40.718Z","dependency_job_id":"8274b42f-5eaf-4bad-bcf7-0d7572ecd3c3","html_url":"https://github.com/Prosumma/Iatheto","commit_stats":null,"previous_names":[],"tags_count":37,"template":false,"template_full_name":null,"purl":"pkg:github/Prosumma/Iatheto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prosumma%2FIatheto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prosumma%2FIatheto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prosumma%2FIatheto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prosumma%2FIatheto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Prosumma","download_url":"https://codeload.github.com/Prosumma/Iatheto/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Prosumma%2FIatheto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30628434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-17T17:32:55.572Z","status":"ssl_error","status_checked_at":"2026-03-17T17:32:38.732Z","response_time":56,"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":["json","json-parser"],"created_at":"2024-12-01T13:38:25.823Z","updated_at":"2026-03-17T18:37:42.500Z","avatar_url":"https://github.com/Prosumma.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"Iatheto\n==\n\nIatheto is a minimal JSON framework that serializes to and from Apple's `Codable`. By now there are many such frameworks, but Iatheto is one of the oldest — it predates `Codable` — with a very tiny implementation.\n\nIatheto supports only those types directly supported by JSON and no others. To handle a date, for instance, you must first turn it into a string.\n\nLiterals\n--\n\nLike most modern Swift JSON frameworks, Iatheto supports the usual literal assignments:\n\n```swift\nvar json: JSON = nil // Produces JSON.null\njson = \"json\" // Produces JSON.string(\"json\")\njson = [\"array\": [1, 2, 3]] // Produces JSON.object([\"array\": JSON.array([1, 2, 3])])\n```\n\nAttributes\n--\n\nIatheto has nilable properties \u0026mdash; getters and setters \u0026mdash; which can be used to get typed values.\n\n```swift\nlet json: JSON = \"json\"\nlet s = json.string // If json is JSON.string, then s will be \"json\", otherwise nil. \n```\n\nAssigning `nil` to one of these properties changes the receiver to `JSON.null`:\n\n```swift\nvar json: JSON = \"json\"\njson.string = nil // json is now JSON.null\n```\n\nSubscripts\n--\n\nIatheto has exactly the subscripts you'd expect:\n\n```swift\nlet json: JSON = [\"foo\": [\"bar\"]]\nlet s = json[\"foo\"]?[0]?.string // If the types work out s will be \"bar\", otherwise nil.\n```\n\nAssignment through the subscripts is possible. Assigning `nil` to an array subscript produces `JSON.null`. However, assigning `nil` through an object subscript removes the entry from the underlying object. To specifically set to `JSON.null`, assign that\nparticular value.\n\n```swift\nvar json: JSON = [\"foo\": [\"bar\"]]\njson[\"foo\"]?[0] = nil // Produces {\"foo\": [null]}\njson[\"foo\"] = .null // Produces {\"foo\": null}\njson[\"foo\"] = nil // Produces {}\n```\n\nDuring a subscript assignment, if the underlying value is not an array or object, it becomes one:\n\n```swift\nvar json: JSON = nil\njson[\"foo\"] = \"bar\" // Produces {\"foo\": \"bar\"}\njson[\"foo\"]?.int = 3 // Produces {\"foo\": 3}\n```\n\nEncoding\n--\n\nIatheto's `JSON` type supports initialization by many kinds of literals, so the syntax is natural.\n\n```swift\nlet json: JSON = [\"first_name\": \"Murray\", \"last_name\": \"Rothbard\", \"born\": 1926, \"died\": 1995]\nlet encoder = JSONEncoder()\nlet data = try encoder.encode(json)\n```\n\nDecoding\n--\n\nDecoding is as straightforward as encoding:\n\n```swift\nlet decoder = JSONDecoder()\nlet json = try decoder.decode(JSON.self, from: data)\n```\n\nWhat's a Iatheto?\n--\n\n\"Iatheto\" comes from the Greek ἰαθήτω, \"she shall be healed\", which in turn comes the verb  ἰάομαι \"to heal\". This verb is the origin of the name Ἰάσων \"Jason\".\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprosumma%2Fiatheto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprosumma%2Fiatheto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprosumma%2Fiatheto/lists"}