dot-finder
v0.0.1
Published
dot-finder is using powerful dot notation to get values in JSON object
Downloads
4
Maintainers
Readme
dot-finder
dot-finder is using powerful dot notation to get values in JSON object
Table of Contents
Install
$ npm install dot-finder
Usage
const dot = require("dot-finder");
/**
* Object
*/
dot({ foo: { bar: "baz" } }, "foo.bar");
// or
dot({ foo: { bar: "baz" } }, "foo['bar']");
// => "baz"
dot({ "foo.bar": { baz: "hoge" } }, "foo\\.bar.baz");
// => "hoge"
dot({}, "notfound", "defaultValue");
// => "defaultValue"
/**
* Array
*/
dot([[{ fruits: "apple" }, { fruits: "pineapple" }]], "[0][1].fruits");
// or
dot([[{ fruits: "apple" }, { fruits: "pineapple" }]], "0.1.fruits");
// => "pineapple"
/**
* Advanced
*/
const data1 = {
authors: [
{ username: "tsuyoshiwada", profile: { age: 24 } },
{ username: "sampleuser", profile: { age: 30 } },
{ username: "foobarbaz", profile: { age: 33 } }
]
};
dot(data1, "authors.*.username");
// => ["tsuyoshiwada", "sampleuser", "foobarbaz"]
dot(data1, "authors.*.profile.age");
// => [24, 30, 33]
const data2 = [
{
posts: {
tags: [
{ id: 1, slug: "news" },
{ id: 2, slug: "sports" },
{ id: 3, slug: "entertaiment" }
]
}
},
{
posts: {
tags: [
{ id: 4, slug: "music" },
{ id: 5, slug: "it" },
{ id: 6, slug: "programming" }
]
}
}
];
dot(data2, "*.posts.tags.*.slug");
// => ["news", "sports", "entertaiment", "music", "it", "programming"]
Contribute
- Fork it!
- Create your feature branch: git checkout -b my-new-feature
- Commit your changes: git commit -am 'Add some feature'
- Push to the branch: git push origin my-new-feature
- Submit a pull request :D