{"id":16950038,"url":"https://github.com/tailhook/objpath","last_synced_at":"2025-03-21T10:24:30.183Z","repository":{"id":11351626,"uuid":"13782720","full_name":"tailhook/objpath","owner":"tailhook","description":"A library that allows to traverse data structures by path","archived":false,"fork":false,"pushed_at":"2013-10-30T10:15:46.000Z","size":112,"stargazers_count":4,"open_issues_count":0,"forks_count":1,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-26T07:07:22.352Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C","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/tailhook.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2013-10-22T18:55:24.000Z","updated_at":"2016-05-27T05:47:09.000Z","dependencies_parsed_at":"2022-09-02T01:52:14.909Z","dependency_job_id":null,"html_url":"https://github.com/tailhook/objpath","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fobjpath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fobjpath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fobjpath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fobjpath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tailhook","download_url":"https://codeload.github.com/tailhook/objpath/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244776604,"owners_count":20508554,"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":[],"created_at":"2024-10-13T21:56:41.019Z","updated_at":"2025-03-21T10:24:30.162Z","avatar_url":"https://github.com/tailhook.png","language":"C","readme":"=======\nObjpath\n=======\n\nObjpath is a library that allows to traverse data structures by path. It can\nbe used to build fast traversers for JSON and JSON-like data structures (YAML,\nmsgpack). Potentially may be used to traverse any kind of data structures\nwhich has two kinds of access: based on the key (objects in JSON) and index\n(arrays in JSON).\n\n\nSyntax\n======\n\n``/key`` access an object property with name ``key`` (allows only alphanumeric\ncharacters)\n\n``:123`` access an array element with index ``123``\n\n``/*`` traverse all properties of an object\n\n``:*`` traverse all values of an array\n\n``/%`` traverse all keys of the object (traversing keys is usually an\noperation that returns the keys itself, its useless to access children of the\nkey)\n\n``/abc*`` traverse values with keys starting with ``abc``\n\n``:12-34`` traverse all values from 12 up to 34 (including both)\n\n``[\"abc\"]`` access an object property with naem ``abc`` (allows\nnon-alphanumeric characters)\n\n``A?B`` means that we check whether pattern B matches but return whatever the A\nmatches\n\nTo allow easier concatenation of the patterns, two or more slash characters\nare squashed and treated as there was only one.\n\n\nAPI\n===\n\nThe API is designed in a way that adding additional syntax to patterns should\nnot change the underlying API. However, some optional additions to API may be,\nto allow more efficient search. Also the API should be very easy to use from\nscripting languages.\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Fobjpath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftailhook%2Fobjpath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Fobjpath/lists"}