UNPKG

react-json-viewer-cool

Version:

React json view plugin, supports expansion and hiding. Uses react hooks.

35 lines (32 loc) 838 B
import React, { useState, useEffect } from 'react'; import { isArray, isObject, parseObjectToList, needFormat, getType } from './utils.js'; import Tree from './tree.js'; import './style.css'; const JsonView = props => { let { data } = props; let [list, setList] = useState([]); useEffect(() => { if (needFormat(getType(data))) { setList(parseObjectToList(data)); } }, [data]); if (isArray(data) || isObject(data)) { return ( <pre className="x-json-view"> <p className="x-json-outter">{isArray(data) ? '[' : '{'}</p> {list.map((item, index) => ( <Tree key={index} {...item} /> ))} <p className="x-json-outter">{isArray(data) ? ']' : '}'}</p> </pre> ); } return <div className="x-json-view">{data + ''}</div>; }; export default JsonView;