@ingsystemcix/json-viewer
v1.0.1
Published
A simple JSON viewer for Bun
Downloads
4
Maintainers
Readme
JsonViewer Web Component
JsonViewer es un componente web personalizado que permite mostrar
datos JSON en un modal emergente. Es útil para depuración,
visualización de datos o cualquier caso donde necesites mostrar
JSON de forma legible.
🚀 Características
- Renderiza datos JSON en un formato legible.
- Modal emergente con un botón de cierre.
- Fácil de usar e integrar en cualquier proyecto web.
- Compatible con la API de Custom Elements.
Versiones
- 1.0.0: Versión inicial con funcionalidad básica de visualización de JSON NO USARLO.
- 1.0.1: Mejora en la detección de cambios del
atributo
datay corrección de errores menores.
📦 Instalación
con npm
npm install @ingsystemcix/json-viewero con bun
bun add @ingsystemcix/json-viewer🛠️ Uso
1. Agregar el componente al DOM
<json-viewer></json-viewer>2. Configurar datos JSON
Podés establecer los datos JSON directamente desde JavaScript:
const viewer = document.querySelector("json-viewer");
viewer.data = { key: "value", anotherKey: [1, 2, 3] };O usando el atributo data en el HTML:
<json-viewer data='{"key": "value", "anotherKey": [1, 2, 3]}'></json-viewer>3. Mostrar y ocultar el modal
Para mostrar el modal:
viewer.show();Para ocultarlo:
viewer.hide();🧑💻 API
Propiedades
data
Tipo:
objectDescripción: Establece o recupera los datos JSON que se muestran en el modal.
Ejemplo:
viewer.data = { name: "John Doe", age: 30 }; console.log(viewer.data); // { name: "John Doe", age: 30 }
Métodos
show()
Descripción: Muestra el modal del visor JSON.
Ejemplo:
viewer.show();
hide()
Descripción: Oculta el modal del visor JSON.
Ejemplo:
viewer.hide();
render(json)
Descripción: Renderiza un objeto JSON en el modal.
Parámetros:
json(object): El objeto JSON a renderizar.
Ejemplo:
viewer.render({ key: "value" });
📋 Ejemplo Completo
Aquí hay un ejemplo completo de cómo usar el componente JsonViewer
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>JsonViewer Example</title>
<script src="path/to/json-viewer.js"></script>
</head>
<body>
<json-viewer></json-viewer>
<script>
const viewer = document.querySelector("json-viewer");
viewer.data = { name: "Jane Doe", hobbies: ["coding", "reading"] };
viewer.show();
// Hide the viewer after 5 seconds
setTimeout(() => viewer.hide(), 5000);
</script>
</body>
</html>React ejemplo
import React, { useEffect, useRef } from "react";
import "@ingsystemcix/json-viewer";
const JsonViewerComponent = () => {
const viewerRef = useRef(null);
useEffect(() => {
if (viewerRef.current) {
viewerRef.current.data = { name: "John Doe", age: 30 };
viewerRef.current.show();
}
}, []);
return <json-viewer ref={viewerRef}></json-viewer>;
};
export default JsonViewerComponent;⚙️ Detalles Técnicos
Observed Attributes
El componente observa el atributo data. Si el atributo cambia, intenta analizar
el JSON y renderizarlo automáticamente.
Shadow DOM
El componente utiliza Shadow DOM para encapsular su estilo y estructura.
🛡️ Compatibilidad
Este componente es compatible con navegadores modernos que soportan Custom Elements y Shadow DOM. Para navegadores más antiguos, podrías necesitar un polyfill.
📝 Contribuciones
¡Las contribuciones son bienvenidas! Si encontrás un bug o querés agregar una nueva funcionalidad, abrí un issue o enviá un pull request.
📄 Licencia
Este proyecto está bajo la licencia MIT.
