{"id":18536524,"url":"https://github.com/navicore/navipath","last_synced_at":"2026-05-01T04:32:43.502Z","repository":{"id":32659075,"uuid":"130260821","full_name":"navicore/NaviPath","owner":"navicore","description":"A library of JsonPath implicit convenience methods","archived":false,"fork":false,"pushed_at":"2023-12-01T01:49:22.000Z","size":418,"stargazers_count":2,"open_issues_count":1,"forks_count":1,"subscribers_count":3,"default_branch":"main","last_synced_at":"2025-02-17T07:33:49.971Z","etag":null,"topics":["json","jsonpath","scala"],"latest_commit_sha":null,"homepage":null,"language":"Scala","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/navicore.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":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-04-19T19:08:51.000Z","updated_at":"2024-04-28T15:44:12.000Z","dependencies_parsed_at":"2023-02-15T23:01:02.960Z","dependency_job_id":"c8ea99e1-ea65-4a5d-8bdc-83f5456ccbe0","html_url":"https://github.com/navicore/NaviPath","commit_stats":null,"previous_names":[],"tags_count":32,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navicore%2FNaviPath","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navicore%2FNaviPath/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navicore%2FNaviPath/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/navicore%2FNaviPath/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/navicore","download_url":"https://codeload.github.com/navicore/NaviPath/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254251699,"owners_count":22039457,"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":["json","jsonpath","scala"],"created_at":"2024-11-06T19:34:32.853Z","updated_at":"2026-05-01T04:32:43.494Z","avatar_url":"https://github.com/navicore.png","language":"Scala","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003c!-- ghmig:moved --\u003e\n\u003e **This repository has moved to [https://git.navicore.tech/navicore/NaviPath](https://git.navicore.tech/navicore/NaviPath).**\n\u003e\n\u003e The GitHub copy is archived and no longer maintained.\n\n[![Build Status](https://travis-ci.org/navicore/NaviPath.svg?branch=master)](https://travis-ci.org/navicore/NaviPath)\n[![Codacy Badge](https://api.codacy.com/project/badge/Grade/70e6c4da5022432ab78cc212ed55759e)](https://www.codacy.com/app/navicore/NaviPath?utm_source=github.com\u0026amp;utm_medium=referral\u0026amp;utm_content=navicore/NaviPath\u0026amp;utm_campaign=Badge_Grade)\n\nNaviPath\n-----\n\nA lib for adding implicit [JsonPath](http://jsonpath.com/) functions to Strings\n======\n\nBased on https://github.com/gatling/jsonpath. I've embedded the code from gatling instead of adding the maven binary dependency in order to support more scala versions via cross compile.\n\nSee http://goessner.net/articles/JsonPath/ for jsonpath documentation.\n\n## INSTALL\n\n* ongoing dev is for for scala 2.12+\n* if you use scala 2.11 - use version 2.1.0\n\n```\n// https://mvnrepository.com/artifact/tech.navicore/navipath\nlibraryDependencies += \"tech.navicore\" %% \"navipath\" % \"4.1.3\"\n```\n\n## USAGE\n\nSee http://goessner.net/articles/JsonPath/ for JsonPath documentation.\n\n### DSL USAGE\n\nExamples where \"\\\u003cjson\\\u003e\" is a valid json string or parsed output from `.asJson`:\n```scala\n    import navicore.data.navipath.dsl.NaviPathSyntax._\n    \"\u003cjson\u003e\".query[String](\"$.name\")\n    \"\u003cjson\u003e\".query[Long](\"$.widget.window.height\")\n    \"\u003cjson\u003e\".query[List[String]](\"$.stuff[*].name\")\n    \"\u003cjson\u003e\".query[List[Int]](\"$.stuff[*].value\")\n```\n\nFirst match support:\n```scala\n    val jsonString = \"\"\"{\"name\": \"Ishmael\"}\"\"\"\n    import navicore.data.navipath.dsl.NaviPathSyntax._\n    val result = jsonString.query[String](\"$.name\")\n    result should be ('defined)\n    result.fold()(assertResult(\"Ishmael\"))\n```\n\nMultiple matches support:\n```scala\n    val jsonString = \"\"\"{\"stuff\": [{\"name\": \"Ishmael\"}, {\"name\": \"Mud\"}]}\"\"\"\n    import navicore.data.navipath.dsl.NaviPathSyntax._\n    val results = jsonString.query[List[String]](\"$.stuff[*].name\")\n    results.fold()(r =\u003e assert(r.head == \"Ishmael\"))\n    results.fold()(r =\u003e assert(r(1) == \"Mud\"))\n```\n\nParse once, query many times support:\n```scala\n    val jsonString = \"\"\"{\"stuff\": [{\"name\": \"Ishmael\", \"id\": 1}, {\"name\": \"Mud\", \"id\": 2}]}\"\"\"\n    import navicore.data.navipath.dsl.NaviPathSyntax._\n    val parsedJson = jsonString.asJson\n    val names = parsedJson.query[List[String]](\"$.stuff[*].name\")\n    val ids = parsedJson.query[List[Int]](\"$.stuff[*].value\")\n    ...\n    ...\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavicore%2Fnavipath","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnavicore%2Fnavipath","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnavicore%2Fnavipath/lists"}