An open API service indexing awesome lists of open source software.

https://github.com/triggerdotdev/fuzzy-json-search

Search a JSON document by path, content, and inferred content
https://github.com/triggerdotdev/fuzzy-json-search

Last synced: 2 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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

```bash
$ 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:

```typescript
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` 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 }`