Convierte un objeto JSON, o un array de objetos, en una interfaz TypeScript, una clase Python, un modelo Pydantic o SQL. El formato bonito sigue en el formateador JSON
Una muestra de API suele ser un objeto JSON, o una lista de objetos. Esta página escribe una interfaz TypeScript, una clase Python, un modelo Pydantic, o un CREATE TABLE y un INSERT por objeto. El formato y la reparación siguen en el formateador JSON.
{"id":1,"name":"Ada","ok":true,"tags":["a","b"],"meta":{"n":2}}, pone el modo en Interfaz TypeScript, Nombre en Item y deja las dos casillas marcadas. El resultado tiene export interface Item con id?: number, name?: string, ok?: boolean, tags?: string[] y meta?: ItemMeta, más export interface ItemMeta con n?: number.item. Las columnas son id BIGINT NOT NULL, name TEXT NOT NULL, ok BOOLEAN NOT NULL, tags TEXT NOT NULL y meta TEXT NOT NULL. El INSERT es 1, 'Ada', 1, '["a","b"]', '{"n":2}'.from dataclasses import dataclass y from typing import Optional, List, luego la clase @dataclass ItemMeta con n: Optional[int] = None, luego la clase @dataclass Item con id, name, ok, tags: Optional[List[str]] = None y meta: Optional[ItemMeta] = None. Cambie el modo a Modelo Pydantic: los imports añaden from pydantic import BaseModel y ambas clases extienden BaseModel, sin @dataclass. Mostrar ejemplo se queda en Interfaz TypeScript.La raíz debe ser un objeto, o un array de objetos. Un número, una cadena o un array de números se detiene con un error. Un objeto sin claves se detiene con un error.
TypeScript usa boolean, number y string. Un array de uno de esos tipos se vuelve T[]. Un array vacío se vuelve unknown[]. Un objeto anidado se vuelve otra interfaz: el nombre del padre más la clave, así que meta bajo Item es ItemMeta. Los tipos mezclados se vuelven unknown. Propiedades opcionales añade ? en cada campo. Cuando la raíz es un array y a algún objeto le falta una clave, ese campo es opcional aunque Propiedades opcionales esté desmarcado. export escribe export interface. Una raíz que es un array añade el comentario // JSON root is Name[].
SQL pasa Nombre a minúsculas y convierte los demás caracteres en guiones bajos, así Order Line se vuelve order_line. Los enteros son BIGINT, los demás números son DOUBLE, los booleanos son BOOLEAN y se escriben como 1 o 0, y las cadenas son TEXT. Un objeto o un array anidado es TEXT con el texto JSON. Una comilla simple dentro de una cadena se duplica. Una clave que es null, o que falta en alguna fila, admite nulos. Cada objeto es un INSERT.
Es un objeto, así que TypeScript lo llama ItemMeta. En SQL ese mismo campo es TEXT con {"n":2}.
Cada objeto se vuelve una fila. Una lista de números no tiene columnas.