Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@redheadphone/react-json-grid

Package Overview
Dependencies
Maintainers
0
Versions
16
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@redheadphone/react-json-grid

React Component that converts JSON to nested grid tables.

  • 0.9.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
0
Created
Source

React JSON Grid

Interactive demos available below!
CodePen CodeSandbox Stackblitz

The library react-json-grid provides the React component JSONGrid, which is a user-friendly and versatile tool that enables you to effortlessly transform nested JSON objects or arrays into structured nested grid tables. This component has got you covered when dealing with big and complex JSON data, allowing you to display it in an organized manner.

Features

  • 🛠️ Ease of Integration: Seamlessly incorporate the component into your React applications without any hassle and no dependencies.
  • 🗂️ Nested JSON Support: Handle deeply nested JSON structures with ease, creating nested structured grid tables that are collapsible and expandible.
  • Highlight Magic: Select and highlight specific cells, rows, or columns in the grid tables to enhance the user interface and facilitate interaction.
  • 🔍 Search Spotlight: Enhance the visibility of your JSON data with a search feature that effectively highlights cells matching with the search text.
  • 🎨 Customizable Styling: Tailor the appearance of the grid to match your application's design using custom theme.

Install

Run the following command in your React project directory:

npm install @redheadphone/react-json-grid

You can also use other package managers like yarn or pnpm, if preferred.

Usage

Here's an example of how to use the react-json-grid library:

import JSONGrid from '@redheadphone/react-json-grid'

function ExampleComponent() {
  const data = {
    "id": "0001",
    "type": "donut",
    "name": "Cake",
    "ppu": 0.55,
    "batters": {
      "batter": [
        { "id": "1001", "type": "Regular" },
        { "id": "1002", "type": "Chocolate" },
        { "id": "1003", "type": "Blueberry" },
        { "id": "1004", "type": "Devil's Food" }
      ]
    },
    "topping": [
      { "id": "5001", "type": "None" },
      { "id": "5002", "type": "Glazed" },
      { "id": "5005", "type": "Sugar" },
      { "id": "5007", "type": "Powdered Sugar" },
      { "id": "5006", "type": "Chocolate with Sprinkles" },
      { "id": "5003", "type": "Chocolate" },
      { "id": "5004", "type": "Maple" }
    ]
  }

  return <JSONGrid data={data} />
}

Props

The JSONGrid component supports the following props:

NameTypeDescriptionDefault
dataobjectThe JSON object or array to be transformed into a grid table.undefined
defaultExpandDepthnumberThe depth to which the grid is expanded by default.0
defaultExpandKeyTreeobjectTree-like structure with all keys that needs to be expanded.undefined
onSelectfunctionEvent to obtain selected cell's keyPath(keyPath)=>{}
highlightSelectedbooleanWhether to highlight the selected cell or not.true
searchTextstringThe text that needs to be searched in the JSON data.undefined
themestringThe theme name that needs to be applied.'default'
customThemeobjectThe customTheme object which specify color code of each part of grid.{}

Themes

Available Themes

  • default
  • dracula
  • monokai
  • oceanicPark
  • panda
  • gruvboxMaterial
  • tokyoNight
  • remedy
  • atlanticNight
  • defaultLight
  • defaultLight2
  • slime
  • spacegray
  • blueberryDark
  • nord
  • nightOwl
  • oneMonokai
  • cobaltNext
  • shadesOfPurple
  • codeBlue
  • softEra
  • atomMaterial
  • evaDark
  • moonLight

Note: Pass one of above themes as a string in the theme prop. You can contribute your custom theme in themes.js if you want.

Custom Theme Object Format

{
  "bgColor": "#222",
  "borderColor": "#b5b5b5",
  "selectHighlightBgColor": "#3b3b3b",
  "cellBorderColor": "#474747",
  "keyColor": "#ffffff",
  "indexColor": "#949494",
  "numberColor": "#6c99bb",
  "booleanColor": "#6c99bb",
  "stringColor": "#a5c261",
  "objectColor": "#ffffff",
  "tableHeaderBgColor": "#444",
  "tableIconColor": "#ffffff",
  "searchHighlightBgColor": "#565a36"
}

Note: These fields override original theme fields, so all fields are not mandatory. All field values need to be strings that are accepted by CSS for color.

Acknowledgements

Keywords

FAQs

Package last updated on 17 Oct 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc