1.4.8 • Published 7 months ago

json-highlighter v1.4.8

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

A React component to highlight JSON by its keys/paths alt text

Based on react-highlight-words.

Usage

To use it, just provide it with a JSON object and an array of paths to highlight.

Try this example in Stackblitz.

import React from 'react';
import { JsonHighlighter } from 'json-highlighter';

const App = (props) => {
  const json = {
    key1: {
      innerArray: ['string to mark'],
    },
    key2: {
      objectToMark: {
        a: 1,
        b: 2,
        c: ['xyz'],
      },
    },
  };

  const paths = ['key1.innerArray[0]', 'key2.objectToMark'];

  return (
    <pre>
      <JsonHighlighter
        json={json}
        space={4} 
        paths={paths} 
        {...props} // props for react-highlight-words
      />
    </pre>
}

And the JsonHighlighter will mark all values based on the provided paths.

Props

PropertyTypeDescription
jsonObjectA JSON object or string
spaceNumberthe space parameter for JSON.stringify for the final textual result. see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify
pathsArrayarray of strings - each string represents a path inside the json. e.g: 'foo0.bar'

react-highlight-words Props

Relevant props to pass to the inner react-highlight-words component. to see all props go to: https://github.com/bvaughn/react-highlight-words

PropertyTypeDescription
activeClassNameStringThe class name to be applied to an active match. Use along with activeIndex
activeIndexNumberSpecify the match index that should be actively highlighted. Use along with activeClassName
activeStyleObjectThe inline style to be applied to an active match. Use along with activeIndex
highlightClassNameString or ObjectCSS class name applied to highlighted text or object mapping search term matches to class names.
highlightStyleObjectInline styles applied to highlighted text
highlightTagNodeType of tag to wrap around highlighted matches; defaults to mark but can also be a React element (class or functional)
unhighlightClassNameStringCSS class name applied to unhighlighted text
unhighlightStyleObjectInline styles applied to unhighlighted text
*anyAny other props (such as title or data-*) are applied to the outer/wrapper <span>

Installation

yarn add json-highlighter
npm i --save json-highlighter

License

MIT License - fork, modify and use however you want.

1.4.6

7 months ago

1.4.5

7 months ago

1.4.8

7 months ago

1.4.7

7 months ago

1.4.4

2 years ago

1.4.3

2 years ago

1.4.2

2 years ago

1.4.1

3 years ago

1.2.0

3 years ago

1.1.0

3 years ago

1.3.7

3 years ago

1.3.6

3 years ago

1.3.5

3 years ago

1.3.4

3 years ago

1.3.3

3 years ago

1.3.2

3 years ago

1.4.0

3 years ago

1.3.1

3 years ago

1.3.0

3 years ago

1.3.9

3 years ago

1.3.8

3 years ago

1.0.0

3 years ago