O que é JSON?
A API de Scraping sem Raspagem retorna dados estruturados de fontes web suportadas para aplicações que precisam de resultados legíveis por máquina.
JSON é um formato de texto para representar dados estruturados. Um objeto agrupa valores nomeados, enquanto um array mantém valores em ordem. O formato é pequeno o suficiente para ser inspecionado em um editor de texto e preciso o suficiente para que softwares em diferentes linguagens possam trocar as mesmas estruturas básicas. Seu nome vem de Notação de Objetos JavaScript, mas JSON é um formato de dados, ao invés de um programa JavaScript.
Uma resposta JSON é útil apenas quando o leitor sabe o que os campos significam. Um registro de produto com um preço, moeda e disponibilidade é mais informativo do que um número sem rótulo. Este guia explica a gramática, mostra como o JSON se encaixa em uma troca HTTP e separa a validade da sintaxe do problema mais difícil de dados confiáveis.
Como o JSON Representa Dados
JSON tem seis tipos de valores: objeto, array, string, número, booleano e nulo. O A especificação do formato JSON define sua gramática. Um objeto é escrito com chaves e consiste em pares de nome e valor. Um array é escrito com colchetes e contém uma sequência ordenada de valores. O mesmo array pode conter vários tipos de valores JSON, embora um esquema de aplicação possa impor regras mais rigorosas.
Strings usam aspas duplas. Dentro de uma string, aspas, barras invertidas e certos caracteres de controle precisam de escape. Números usam uma gramática decimal; JSON não tem representação embutida para valores como infinito ou um valor JavaScript indefinido. As palavras true, false e null são literais em minúsculas. Um parser pode rejeitar um documento por causa de uma única vírgula final ou um nome de propriedade não citado.
Por exemplo, uma resposta hipotética pode conter um objeto chamado item com um título string, um preço numérico, um valor booleano inStock e um array de tags. A forma externa diz quais campos viajam juntos; os valores dizem o que foi observado. JSON não prescreve uma moeda, fuso horário ou definição comercial para esses campos. O produtor e o consumidor ainda precisam de um contrato que dê a cada nome um significado estável.
O que um Documento JSON Pode e Não Pode Garantir
JSON válido prova que o texto segue uma gramática. Não prova que um campo obrigatório existe, que um preço é atual ou que uma URL é segura para abrir. Um parser pode aceitar um objeto cujos campos estejam todos errados para a operação em questão. Após a análise, valide a forma esperada, as faixas de valores e os identificadores antes de alimentar os dados em uma interface de usuário ou trabalho a jusante.
Nomes de objetos duplicados são particularmente complicados. O formato descreve nomes dentro de um objeto como idealmente únicos, no entanto, parsers podem lidar com repetições de maneira diferente. Uma implementação pode manter o último valor enquanto outra relata um erro. Se uma decisão de segurança depende de um campo, não deixe duas cópias conflitantes desse nome passarem silenciosamente por diferentes camadas do sistema.
JSON também não carrega um tipo de data nativo, blob binário ou declaração de esquema. Aplicações comumente codificam horários como strings e conteúdo binário através de uma representação acordada, mas essas são convenções impostas acima do formato central. Documente a convenção ao lado do campo. Caso contrário, dois clientes podem analisar o mesmo texto com sucesso e ainda assim interpretá-lo de maneira diferente.
Como o JSON Viaja Através de uma API
Uma API HTTP pode colocar JSON em um corpo de requisição, um corpo de resposta, ou ambos. O campo Content-Type identifica a representação para que o destinatário possa escolher um parser adequado. A especificação de semântica HTTP separa os metadados da mensagem do corpo que está sendo transferido. Um status de sucesso HTTP diz algo sobre o resultado da requisição; o corpo da resposta descreve o recurso ou resultado retornado.
Um cliente deve verificar o status da resposta e o tipo de mídia esperado antes de assumir que todos os corpos são JSON. Falhas de autenticação, erros de gateway e páginas de manutenção podem retornar outro formato. Analise somente após confirmar que o corpo recebido pertence à operação esperada. Em seguida, inspecione um caminho de campo documentado em vez de assumir que todos os serviços envolvem resultados em uma propriedade chamada data.
A introdução à API de Scraping sem Raspagem descreve requisições selecionadas pelo ator e saída estruturada. Esse é um uso concreto para JSON: uma aplicação envia um objeto de entrada documentado e lê o resultado específico do ator. Diferentes atores podem ter campos diferentes, então um único parser genérico pode decodificar o texto enquanto um mapeamento específico do produto ainda precisa interpretá-lo.
Objetos, Arrays e Valores Faltantes
Um objeto responde a uma pergunta sobre propriedades nomeadas; um array responde a uma pergunta sobre sequência. Uma lista de resultados de busca é naturalmente representada como um array de objetos de resultado, com cada objeto contendo campos como um título e um link. O objeto de resposta envolvente também pode carregar paginação ou metadados. Separar esses níveis facilita explicar quais campos descrevem um resultado e quais descrevem toda a requisição.
Uma propriedade faltante não é o mesmo que uma propriedade cujo valor é nulo. Faltante pode significar que o produtor omitiu um campo; nulo aparece explicitamente no documento. Nenhum dos casos deve ser automaticamente tratado como zero ou uma string vazia. Decida como a aplicação consumidora lida com cada caso e teste essa decisão em relação ao contrato real da API.
Números merecem cuidado semelhante. JSON fornece uma gramática de números, mas linguagens diferem em como armazenam números inteiros muito grandes e frações decimais. Dinheiro e identificadores podem precisar de uma representação documentada em string ou decimal ao invés de uma suposição de ponto flutuante. A interface JSON do JavaScript mostra as operações de parse e serialize familiares, enquanto o modelo de dados ainda requer decisões em nível de aplicação.
Validando e Depurando JSON na Prática
Comece com a resposta bruta em vez de uma captura de tela do que um painel exibiu. Confirme seu status, tipo de mídia e corpo completo. Se a análise falhar, localize o primeiro erro de sintaxe: uma aspa não escapada, um colchete de fechamento ausente ou uma vírgula desnecessária muitas vezes são suficientes. Se a análise for bem-sucedida, mas o aplicativo ainda falhar, inspecione o caminho e o tipo do campo que o aplicativo espera.
Escreva verificações contra o significado em vez de mera presença. Um array de resultados pode estar presente e vazio; isso pode ser um resultado válido de nenhuma ocorrência ou uma evidência de um problema de acesso a montante. Uma URL pode ser uma string e ainda apontar para uma página não relacionada. Mantenha um pequeno conjunto de respostas conhecidas boas e casos extremos como exemplos de contrato, claramente rotulados como exemplos em vez de capturas ao vivo.
Ao ingerir dados públicos da web, preserve um link para o registro de origem e o contexto da observação quando o fluxo de trabalho precisar de auditabilidade. Scrapeless Scraping API é uma maneira de obter resultados estruturados de fontes suportadas. O aplicativo que armazena esses resultados ainda deve validar o esquema específico do ator e decidir como lidar com campos que variam entre os alvos.
Quando JSON É a Representação Certa
JSON é uma boa opção para trocar registros estruturados de pequeno a moderadamente grande entre serviços web e clientes. É legível sem um visualizador especialista, e a maioria das linguagens possui analisadores maduros. Isso o torna conveniente para configuração, solicitações de API e registros extraídos que precisam passar por vários sistemas. Legibilidade não significa que um humano deva editar payloads de produção manualmente.
Para exportações tabulares, CSV pode ser mais fácil para planilhas, embora não represente naturalmente estruturas aninhadas. HTML preserva a estrutura e apresentação da página, mas geralmente precisa de extração antes que um aplicativo possa consultar campos comerciais de forma confiável. Um formato binário pode reduzir o tamanho ou adicionar um esquema mais robusto para tráfego interno de alta volume. Escolha de acordo com a forma dos dados e os sistemas que os consomem.
Uma pergunta de design útil é se o consumidor precisa da página original ou de um registro selecionado. Se o consumidor precisa de um título de produto e disponibilidade de um ator suportado, JSON estruturado reduz o trabalho de análise. Se o consumidor precisa inspecionar o markup exato que produziu um resultado, mantenha ou solicite uma representação de página adequada também. O relacionado Guia do ator da Scraper API ilustra por que envelopes e campos de saída devem ser lidos ator por ator.
Conclusão
JSON fornece uma gramática de texto precisa para a troca de valores estruturados. Não fornece as regras comerciais que tornam esses valores confiáveis. Defina a forma esperada, inspecione as respostas reais da API e valide os campos que seu aplicativo usa antes de tratar um documento analisado como um registro confiável.
Transforme Dados Web Estruturados em Registros Usáveis
Explore os atores da Scraping API documentados e mapeie seus campos retornados para seu esquema de aplicativo.
Cadastre-se hoje e receba $5 em crédito grátis — sem cartão de crédito necessário.
Reclame Seu Crédito de $5 →FAQ
JSON é igual a JavaScript?
JSON é um formato de dados independente de linguagem inspirado na notação de objeto JavaScript. O JavaScript pode analisar e serializar JSON, mas JSON exclui expressões JavaScript, funções, comentários e valores indefinidos. Trate o JSON recebido como dados para analisar e validar, não como código para executar.
Um arquivo JSON pode conter mais de um objeto?
Um único texto JSON pode ter um array contendo muitos objetos, ou um objeto que contém objetos aninhados. Não pode conter vários valores JSON de nível superior simplesmente colocados um após o outro e ainda ser um único texto JSON padrão. Um formato orientado a linhas separado é às vezes usado para esse propósito.
JSON válido significa que os dados estão corretos?
JSON válido apenas significa que o texto obedece à sintaxe JSON. O conteúdo pode estar incompleto, desatualizado, enganoso ou incompatível com o esquema do consumidor. Verifique os campos obrigatórios, tipos, contexto de origem e regras comerciais após a análise.
Por que uma API às vezes retorna HTML em vez de JSON?
Um cliente de API pode receber HTML quando chega a uma página da web, um desafio de acesso ou uma superfície de erro em vez da resposta de API esperada. Inspecione o status HTTP, a URL final e o tipo de mídia antes de analisar. Uma conexão de rede bem-sucedida sozinha não estabelece que o resultado JSON pretendido foi entregue.