Widget Json
En los archivos XMLView se puede utilizar el Widget Json (WidgetJson) para mostrar de forma legible un campo que guarda datos en formato JSON. En lugar de enseñar el texto JSON en bruto, el formulario muestra cada clave con su valor y anida los objetos y arrays.
<column name="context" numcolumns="6" order="110">
<widget type="json" fieldname="context" readonly="true"/>
</column>
Propiedades del Widget Json
- fieldname: Nombre del campo que contiene el JSON. Obligatorio.
- readonly: Impide la modificación del valor. Recomendado, ya que este widget está pensado para consultar datos.
- rows: Número de filas del área de texto que se muestra cuando el campo está vacío o no contiene un JSON válido. Por defecto, 3.
Visualización
- En un formulario de edición, si el campo contiene un JSON válido se muestra cada clave seguida de su valor en negrita. Los objetos y arrays anidados se muestran dentro de su clave, en dos columnas, o en cuatro si tienen más de 15 elementos.
- Si el campo está vacío o el JSON no es válido, se muestra un área de texto, igual que el Widget Textarea.
- En un listado se muestra el texto JSON en bruto, recortado a 60 caracteres. Al pasar el ratón por encima se ve el texto completo.
Por ejemplo, un campo con el valor:
{"user": "admin", "ip": "127.0.0.1", "data": {"code": 15, "total": 121}}
se muestra en el formulario así:
- user: admin
- ip: 127.0.0.1
- data:
- code: 15
- total: 121
⚠️ Úsalo en vistas de consulta
Cuando el JSON es válido, el widget no genera ningún campo de formulario. Por eso, si se usa en un formulario donde el usuario guarda el registro, ese campo no se envía y se guarda vacío. Úsalo en vistas de solo lectura, como el detalle de un log, o en formularios que no se guardan.
🎨 Opciones de coloreado
Recuerda que todos los widgets tienen una serie de propiedades y opciones comunes.