Skip to content

Search a JSON document by path, content, and inferred content

License

Notifications You must be signed in to change notification settings

triggerdotdev/fuzzy-json-search

Repository files navigation

Fuzzy JSON Search

VSCode style fuzzy search for JSON documents

🚀 Features

  • Use VSCode style fuzzy search on a JSON document
  • Searches through key names, path, raw values and formatted values

💻 Usage

Install Fuzzy JSON Search

$ npm install --save @jsonhero/fuzzy-json-search

The simplest way to search is to create an instance of JSONHeroSearch and pass it a JSON object:

const response = await fetch("https://jsonplaceholder.typicode.com/todos");
const json = await response.json();

const searcher = new JSONHeroSearch(json);

const results = searcher.search("user");

API

JSONHeroSearch.search(query: string)

Performs a fuzzy search against the entire document, ordering by score. Will only return results that score more than 0.

Returns Array<SearchResult<string>>>

SearchResult<string> has the following properties:

item is a string representing the path to the key
score is an ItemScore
ItemScore has the following properties
score is a number, the higher the score the better a match
labelMatch is an array of Match objects
descriptionMatch is an array of Match objects
rawValueMatch is an array of Match objects
formattedValueMatch is an array of Match objects
Match is type { start: number; end: number }