JSSON (JavaScript Simplified Object Notation) - V0.0.3
Disclamer:
JSSON é uma linguagem para gerar JSON massivo de forma humana, ou seja, escreva 10 linhas, gere 10.000.
Post anterior sobre o JSSON: [https://www.tabnews.com.br/carlosedujs/jsson-javascript-simplied-object-notation]
Até a presente versão, essas são as FEATURES:
Tipos de Dados
- Strings:
name = Joãoouname = "João Silva"(com espaços) - Números:
age = 25,price = 99.99,temperature = -15.5 - Booleanos:
active = true,disabled = false - Arrays:
colors = [red, blue, green],ports = [8080, 8081] - Objetos:
user { name = João, age = 25 }
Estruturas
- Objetos aninhados: Suporte completo a múltiplos níveis
- Arrays em objetos:
config { methods = ["GET", "POST"] } - Arrays de objetos:
users = [{ name = João }, { name = Maria }] - Comentários:
// Comentário de linha
Operadores
Aritméticos
+Adição-Subtração (incluindo números negativos:-23.5)*Multiplicação/Divisão%Módulo
Comparação
==Igual!=Diferente>Maior que<Menor que>=Maior ou igual<=Menor ou igual
Lógicos
? :Operador ternário:age >= 18 ? "adult" : "minor"
String
+Concatenação:"Hello " + name
Features Avançadas
Templates
Gera arrays de objetos a partir de dados tabulares:
users [
template { name, age }
João, 25
Maria, 30
]
Ranges
Gera sequências automaticamente:
numbers = 1..100 // [1, 2, 3, ..., 100]
ports = 8080..8085 // [8080, 8081, ..., 8085]
ips = "192.168.1.1".."192.168.1.255" // String ranges!
Map Transformations
Transforma e enriquece dados com lógica:
users [
template { name, age }
map (u) = {
name = u.name
age = u.age
isAdult = u.age >= 18
category = u.age >= 18 ? "adult" : "minor"
tags = ["user", "active"] // Arrays em map!
}
João, 25
Maria, 16
]
Include
Modulariza configurações:
include "database.jsson"
include "api-config.jsson"
Casos de Uso Reais
Suportado e Testado (Clique nos exemplos para redirecionar para a documentação)
-
-
Lat/Lon com ranges gigantes:
- 100 → 10.000 → 1.000.000 pontos
- cálculo de grade
- zoneamento
- types dinâmicos
- suporte a negativo
(-23.5505)funcionando
-
OBJETIVO: Gerar milhões de coordenadas virou uma linha:
0..999999
-
-
- Gera deployment, service e configmap SEM repetir 200 linhas de YAML.
- naming consistente
- condicional de ambiente
- replicas automáticas
- resource limits diferentes
- environment variables
- 100% DRY
- Multi-ambiente com lógica condicional
- Gera deployment, service e configmap SEM repetir 200 linhas de YAML.
-
-
Regras de roteamento com:
- CORS
- rate limiting condicionado
- upstream autogerado
- auth JWT vs basic
- cache por serviço
- paths dinâmicos
-
Sim, rota de microserviço real.
-
-
- Gera arquivos enormes de tradução sem dor:
- en, pt, es, fr
- category automática
- help URL gerada no map
- metadata (
lastUpdated)
- Aquele JSON chato de tradução?
- Virou 8 linhas de JSSON.
- Gera arquivos enormes de tradução sem dor:
-
- Configurações por ambiente
- A/B testing, rollouts, porcentagens — tudo gerado sem repetir estrutura.
-
-
Dados relacionais
-
Tipo:
users [ template { name, age, job } João, 19, Student Maria, 25, Teacher ] -
Isso vira JSON prontinho, validado, bonito.
-
Performance
- Geração em massa: 10,000+ registros de 20 linhas de código
- Ratios: Até 50,000:1 (código JSSON → JSON)
- Escalabilidade: Suporta milhões de registros
🐛 Bugs Corrigidos (v0.0.3.1)
Números Negativos
- Antes:
-23.5 + xcausava erro - Agora: Suporte completo a números negativos em expressões
- Fix: Operador unário MINUS implementado
Limitações Conhecidas
Não Suportado (ainda)
- ❌ Variáveis declaradas
- ❌ Funções/macros customizadas
- ❌ Array methods (filter, map, reduce)
- ❌ Loops (for, while)
- ❌ Operadores lógicos (&&, ||, !)
📈 Comparação com JSON
| Feature | JSON | JSSON |
|---|---|---|
| Quotes em keys | Obrigatório | Opcional |
| Trailing commas | Erro | Não precisa |
| Comentários | Não suporta | // |
| Templates | Não tem | Sim |
| Ranges | Não tem | 1..100 |
| Expressões | Não tem | Aritméticas |
| Condicionais | Não tem | Ternário |
| Includes | Não tem | Sim |
Quando Usar JSSON
Ideal para:
- Arquivos de configuração com estruturas repetitivas
- Geração de grandes datasets que seguem padrões
- Setups multi-ambiente (dev/staging/prod)
- Infrastructure as Code
- Geração de dados para testes
Não ideal para:
- Estruturas JSON únicas e não-repetitivas
- Dados extremamente dinâmicos (use linguagem de programação)
- Configs simples e pequenos (JSON puro é suficiente)
Versão Atual: v0.0.3.1
Status: Produção-ready para casos de uso suportados
Próximas features planejadas:
- Variáveis
- Funções/macros
- Array methods
- Mais operadores lógicos
🤝 Código + Docs + Exemplos reais:
👉 GitHub: [https://github.com/carlosedujs/jsson]
👉 Exemplos reais (geo, k8s, api, i18n, flags, db) estão todos na documentação, acesse [https://jsson-docs.vercel.app/real-world/overview/].
🧨 TL;DR:
Se você escreve JSON repetitivo ou trabalha com DevOps, microserviços, seeds, i18n, geo ou qualquer coisa que depende de dados estruturados…
JSSON v0.0.3.1 te poupa HORAS.
E ainda deixa o código bonito.