Ao tentar importar um arquivo JSON no Notion, você pode ver uma mensagem de erro informando que a importação não pode processar arquivos com arrays aninhados. Isso acontece porque a ferramenta de importação do Notion foi projetada para achatar dados em uma estrutura de tabela única, e arrays aninhados representam dados de vários níveis que não mapeiam diretamente para as colunas do banco de dados do Notion. Este artigo explica por que esse erro ocorre e fornece métodos passo a passo para reestruturar seu arquivo JSON para que o Notion possa importá-lo com sucesso.
Principais conclusões: Corrigindo erros de importação de JSON com arrays aninhados no Notion
- Achate arrays aninhados em linhas separadas: Cada elemento de um array aninhado se torna uma linha própria no banco de dados do Notion, com os dados pai duplicados se necessário.
- Use um conversor de JSON para CSV antes de importar: O Notion importa arquivos CSV de forma mais confiável; converter seu JSON para CSV com arrays achatados evita completamente o erro de array aninhado.
- Use a API do Notion para importações complexas: Se seus dados têm estruturas profundamente aninhadas, a importação programática via API do Notion oferece controle total sobre como os arrays são tratados.
Por que o Notion não consegue processar arquivos JSON com arrays aninhados
A ferramenta de importação do Notion espera uma estrutura plana e tabular, onde cada linha representa um único registro e cada coluna representa um valor simples, como texto, número ou data. Quando seu arquivo JSON contém arrays aninhados — por exemplo, um array de tags ou uma lista de subitens — a ferramenta de importação não consegue decidir como mapear essa estrutura para uma única linha em uma tabela de banco de dados. A ferramenta interpreta o array aninhado como um objeto complexo que não cabe em uma única célula.
Tecnicamente, o mecanismo de importação do Notion usa um analisador semelhante ao CSV internamente. Arrays JSON que contêm outros arrays ou objetos quebram esse analisador porque introduzem dados de comprimento variável que não podem ser representados como um conjunto fixo de colunas. O erro que você vê é um mecanismo de segurança: o Notion se recusa a adivinhar como achatar os dados e rejeita o arquivo imediatamente.
Que tipos de arrays aninhados causam o erro
O erro ocorre com qualquer estrutura JSON que contenha um array cujos elementos são arrays ou objetos. Exemplos incluem:
- Um array de tags:
"tags": ["urgente", "projeto-x"]— na verdade, isso é um array simples e NÃO causa o erro. O Notion pode importar arrays simples como texto separado por vírgulas. - Um array de objetos:
"itens": [{"nome": "A", "preco": 10}, {"nome": "B", "preco": 20}]— isso CAUSARÁ o erro porque cada objeto contém vários campos. - Um array de arrays:
"coordenadas": [[1,2], [3,4]]— isso CAUSARÁ o erro porque os arrays internos não são valores simples.
Passos para reestruturar seu arquivo JSON para importação no Notion
A única maneira confiável de importar JSON com arrays aninhados no Notion é achatar os dados antes de importar. Abaixo estão três métodos, começando pela abordagem manual mais direta e indo até soluções programáticas.
Método 1: Achatar manualmente arrays aninhados em linhas separadas
Este método funciona melhor quando você tem um arquivo JSON pequeno com um nível de aninhamento. Você cria um novo arquivo JSON onde cada elemento do array aninhado se torna seu próprio objeto de nível superior e duplica os campos pai conforme necessário.
- Identifique o array aninhado
Abra seu arquivo JSON em um editor de texto. Localize o array que contém objetos ou arrays. Por exemplo, um arquivo com um array “projetos” onde cada projeto tem um array “itens”. - Crie uma nova estrutura JSON plana
Para cada elemento dentro do array aninhado, crie um novo objeto que inclua todos os campos pai mais os campos do elemento aninhado. Para um projeto chamado “Alfa” com itens [{“nome”: “Tarefa 1”, “status”: “Concluída”}, {“nome”: “Tarefa 2”, “status”: “Pendente”}], você criaria dois objetos: um para a Tarefa 1 e outro para a Tarefa 2, cada um com o nome do projeto “Alfa”. - Salve o arquivo JSON plano
Salve o novo arquivo com um nome diferente, como “projetos-achatados.json”. Certifique-se de que o arquivo contenha um array de objetos planos, sem arrays ou objetos aninhados. - Importe para o Notion
Vá para Configurações e Membros > Configurações > Importar. Selecione JSON e faça upload do seu arquivo achatado. O Notion processará o arquivo sem o erro de array aninhado.
Método 2: Converter JSON para CSV usando um script ou ferramenta online
O Notion importa arquivos CSV sem a limitação de array aninhado porque o CSV representa inerentemente dados planos. Converter seu JSON para CSV com achatamento adequado evita o erro completamente.
- Use um conversor de JSON para CSV com suporte a achatamento
Pesquise por uma ferramenta online como ConvertCSV ou use um script Python com a biblioteca pandas. Essas ferramentas podem achatar JSON aninhado automaticamente, criando novas colunas para campos aninhados. - Configure as opções de achatamento
No conversor, ative opções como “achatar arrays aninhados” ou “expandir arrays em linhas”. Algumas ferramentas permitem escolher entre criar colunas separadas ou linhas separadas. Para o Notion, escolha “expandir em linhas” para que cada elemento aninhado se torne uma nova linha. - Baixe o arquivo CSV
Após a conversão, baixe o arquivo CSV. Abra-o em um editor de planilhas para verificar se não restaram estruturas aninhadas. Cada coluna deve conter um único valor por linha. - Importe o CSV para o Notion
No Notion, selecione Configurações e Membros > Configurações > Importar. Escolha CSV e faça upload do seu CSV achatado. O Notion criará um novo banco de dados com todas as linhas e colunas.
Método 3: Usar a API do Notion para importação programática
Se seu JSON tem estruturas profundamente aninhadas ou você precisa importar dados regularmente, a API do Notion oferece controle total sobre como cada campo é mapeado para as propriedades do banco de dados.
- Crie uma integração do Notion
Vá para a página de Integrações do Notion e crie uma nova integração. Copie o token da API. - Escreva um script que leia seu JSON e crie páginas no banco de dados
Usando Python ou JavaScript, analise seu arquivo JSON. Para cada objeto de nível superior, crie uma nova página no banco de dados do Notion. Para arrays aninhados, decida como tratá-los: concatene valores em uma propriedade de texto, crie uma relação com outro banco de dados ou use uma propriedade de seleção múltipla se o array contiver strings simples. - Execute o script
Execute seu script. Ele enviará solicitações POST para a API do Notion para criar cada página. O script pode lidar com arrays aninhados convertendo-os em tipos de propriedade do Notion que suportam múltiplos valores, como seleção múltipla ou relação. - Verifique os dados importados
Abra seu banco de dados do Notion e verifique se todos os campos foram preenchidos corretamente. Arrays aninhados convertidos em propriedades de seleção múltipla aparecerão como tags.
Se o Notion ainda tiver problemas após a reestruturação
Arquivo importado mostra colunas vazias
Se após achatar seu JSON algumas colunas aparecerem vazias, o JSON original provavelmente tinha chaves ausentes para certos objetos. Certifique-se de que cada objeto em seu array plano contenha o mesmo conjunto de chaves. Use um validador JSON para verificar nomes de chaves inconsistentes.
Notion importa apenas a primeira linha
Isso pode acontecer se seu arquivo JSON não for um array de objetos, mas um único objeto com arrays aninhados. Envolva todo o conteúdo em colchetes para torná-lo um array. Por exemplo, mude {"projetos": [...]} para [{"projetos": [...]}] e depois achate conforme descrito.
Valores separados por vírgula não são analisados corretamente
Se seu JSON achatado contiver campos com vírgulas dentro do texto, o Notion pode interpretá-los erroneamente como colunas separadas ao importar como CSV. Use um método de escape CSV adequado: envolva qualquer campo que contenha vírgulas entre aspas duplas. A maioria dos conversores de JSON para CSV faz isso automaticamente.
| Item | Achatamento Manual | Conversão JSON para CSV | API do Notion |
|---|---|---|---|
| Melhor para | Arquivos pequenos com um nível de aninhamento | Arquivos médios com aninhamento moderado | Arquivos grandes ou profundamente aninhados, importações recorrentes |
| Habilidade técnica necessária | Edição básica de texto | Uso de ferramentas online ou execução de script | Programação (Python ou JavaScript) |
| Lida com arrays simples | Sim | Sim | Sim |
| Lida com arrays de objetos | Sim, mas manualmente | Sim, com opções de achatamento | Sim, com mapeamento personalizado |
| Lida com arrays de arrays | Sim, mas manualmente | Sim, com opções de achatamento | Sim, com mapeamento personalizado |
| Risco de perda de dados | Baixo se feito com cuidado | Baixo com bom conversor | Baixo se o script estiver correto |
Agora você pode importar arquivos JSON com arrays aninhados para o Notion, achatando os dados primeiro. Para importações futuras, considere usar o método de conversão JSON para CSV, pois é mais rápido e menos propenso a erros do que o achatamento manual. Se você trabalha com dados complexos regularmente, invista tempo na configuração de um script da API do Notion que automatize todo o processo de importação.