https://github.com/auritylab/kotlin-object-path
Access properties and lists using a path.
https://github.com/auritylab/kotlin-object-path
kotlin object-path
Last synced: 10 months ago
JSON representation
Access properties and lists using a path.
- Host: GitHub
- URL: https://github.com/auritylab/kotlin-object-path
- Owner: AurityLab
- License: apache-2.0
- Created: 2020-01-06T13:52:59.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2020-01-17T16:30:55.000Z (about 6 years ago)
- Last Synced: 2024-12-23T15:20:26.399Z (about 1 year ago)
- Topics: kotlin, object-path
- Language: Kotlin
- Homepage:
- Size: 85.9 KB
- Stars: 1
- Watchers: 2
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Kotlin Object Path

[](https://ktlint.github.io/)

A library for [Kotlin](https://kotlinlang.org/) which lets you access properties and lists using a simple path (e.g "users.0.name").
Supports simple reflective access and is compatible with parsed JSON values from Jackson/Gson.
Inspired by [object-path](https://github.com/mariocasciaro/object-path).
## Install
#### Gradle
```kotlin
dependencies {
implementation("com.auritylab:kotlin-object-path:1.0.0")
}
```
#### Maven
```xml
com.auritylab
kotlin-object-path
1.0.0
```
## Usage
```kotlin
// Simple container which holds three values.
data class Container(val a: Any, val b: Any, val c: Any)
// Create an instance with some simple values.
val value = Container("0a", "0b", Container("0c1a", listOf("0c1b0", "0c1b1", "0c1b2"), mapOf(Pair("aa", "0c1c0"), Pair("bb", "0c1c2"))))
// Get a value:
KObjectPath(value).path("c.a").get() // returns "0c1a"
KObjectPath(value).path("c.b.0").get() // returns "0c1b0"
KObjectPath(value).path("c.c.aa").get() // returns "0c1c0"
// Set a value (Currently only supported on mutable Maps and Lists):
KObjectPath(value).path("c.b.0").set("new value")
KObjectPath(value).path("c.c.aa").set("new value")
```