Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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: about 2 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 (over 2 years ago)
- Default Branch: main
- Last Pushed: 2022-10-13T08:10:17.000Z (over 2 years ago)
- Last Synced: 2024-04-14T15:19:08.345Z (9 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
[![NPM version](https://img.shields.io/npm/v/resolve-dotstringkey.svg)](https://www.npmjs.com/package/resolve-dotstringkey)
[![NPM downloads](https://img.shields.io/npm/dm/resolve-dotstringkey.svg)](https://www.npmjs.com/package/resolve-dotstringkey)
[![Known Vulnerabilities](https://snyk.io/test/github/grjan7/resolve-dotstringkey/badge.svg)](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"
}]
}]```