Skip to content

wadackel/dot-finder

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

dot-finder

Build Status npm version

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

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

License

MIT © tsuyoshiwada

About

dot-finder is using powerful dot notation to get values in JSON object

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published