https://github.com/grjan7/resolve-dotstringkey
Resolves the dot object notation string to its value.
https://github.com/grjan7/resolve-dotstringkey
dotted javascript json key-value mongodb mql node nodejs npm npm-package object resolve string utils
Last synced: 5 months ago
JSON representation
Resolves the dot object notation string to its value.
- Host: GitHub
- URL: https://github.com/grjan7/resolve-dotstringkey
- Owner: grjan7
- License: gpl-3.0
- Created: 2022-09-27T07:37:03.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-10-13T08:10:17.000Z (about 3 years ago)
- Last Synced: 2025-06-24T23:07:31.489Z (6 months ago)
- Topics: dotted, javascript, json, key-value, mongodb, mql, node, nodejs, npm, npm-package, object, resolve, string, utils
- Language: JavaScript
- Homepage:
- Size: 23.4 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# resolve-dotstringkey
[](https://www.npmjs.com/package/resolve-dotstringkey)
[](https://www.npmjs.com/package/resolve-dotstringkey)
[](https://snyk.io/test/github/grjan7/resolve-dotstringkey)
## Description
This package resolves stringified dot object notation (e.g., "person.address.city") to its value.
> It will be useful in parsing and matching nested properties of object (e.g., `{"person.address.city": "New York"}` as in MongoDB queries).
> Note: use square bracket notation for array indexes and dot notation for object properties. e.g. `addresses[1].city`.
## Installation
```sh
$ npm i resolve-dotstringkey
```
## Usage
### resolveDotStringKey(rootObject, dottedString)
- **rootObject** | datatype: object | default: none | required
- **dottedString** | datatype: string | default: none | required
- **returns** | datatype: any
#### Examples:
```js
const resolveKey = require("resolve-dotstringkey");
const persons = [{
name: "John",
age: 28,
contacts: [{
address: { city: "New York", state: "NY", country: "USA" },
phone: "+1 20000 50000"
},
{
address: { city: "New Jersey", state: "NJ", country: "USA" },
phone: "+1 21421 41254"
}]
},
{
name: "Robin",
age: 40,
contacts: [{
address: { city: "New York", state: "NY", country: "USA" },
phone: "+1 21426 41255"
}]
}]
```
##### Case 1:
```js
resolveKey(persons, "[0].name") // returns "John"
```
##### Case 2:
```js
resolveKey(persons, "[0].contacts[1].address.city") // returns "New Jersey"
```
##### Case 3:
```js
resolveKey(persons, "[0].contacts")
```
returns
```js
[
{
address: { city: "New York", state: "NY", country: "USA" },
phone: "+1 20000 50000"
},
{
address: { city: "New Jersey", state: "NJ", country: "USA" },
phone: "+1 21421 41254"
}
]
```
##### Case 4:
```js
resolveKey(persons)
```
returns
```js
[{
name: "John",
age: 28,
contacts: [{
address: { city: "New York", state: "NY", country: "USA" },
phone: "+1 20000 50000"
},
{
address: { city: "New Jersey", state: "NJ", country: "USA" },
phone: "+1 21421 41254"
}]
},
{
name: "Robin",
age: 40,
contacts: [{
address: { city: "New York", state: "NY", country: "USA" },
phone: "+1 21426 41255"
}]
}]
```