Postagem em destaque
- Gerar link
- X
- Outros aplicativos
BlackTDN :: DNATech :: Suporte a JSON5 em AdvPL/TLPP
Créditos das imagens: ChatGPT
Suporte a JSON5 em AdvPL/TLPP
JSON5 é uma extensão do popular formato de arquivo JSON que tem como objetivo ser mais fácil de escrever e manter manualmente (por exemplo, para arquivos de configuração). Ele não foi projetado para comunicação entre máquinas. (Continue usando JSON ou outros formatos de arquivo para isso. 🙂)
O JSON5 foi iniciado em 2012 e, a partir de 2022, recebe mais de 65 milhões de downloads por semana, está entre os 0,1% dos pacotes mais utilizados no npm e foi adotado por grandes projetos como Chromium, Next.js, Babel, Retool, WebStorm e outros. Também possui suporte nativo em plataformas da Apple, como macOS e iOS.
Formalmente, o formato de Intercâmbio de Dados JSON5 é um superconjunto do JSON (ou seja, arquivos JSON válidos sempre serão arquivos JSON5 válidos) que expande sua sintaxe para incluir algumas produções do ECMAScript 5.1 (ES5). Além disso, ele é um subconjunto do ES5, o que significa que arquivos JSON5 válidos sempre serão válidos em ES5.*
Esta biblioteca AdvPL/TLPP é uma implementação de referência para análise e serialização de JSON5.
Exemplos
Exemplo 1:
{
// comments
unquoted: 'and you can quote me on that',
singleQuotes: 'I can use "double quotes" here',
lineBreaks: "Look, Mom! \
No \\n's!",
hexadecimal: 0xdecaf,
leadingDecimalPoint: .8675309, andTrailing: 8675309.,
positiveSign: +1,
trailingComma: 'in objects', andIn: ['arrays',],
"backwardsCompatible": "with JSON",
}
Exemplo 2:
{
// Comments are allowed
name: 'John Doe', // No need for quotes around keys
age: +30, // Trailing commas are allowed
isStudent: false,
hobbies: [
"reading",
"gaming",
"coding", // Trailing comma in arrays
],
}
Exemplo 3:
{
"Services": [
{
cExeName: "apache.exe",
cName: "apache_wf.service",
cDislpayName: ".apache_wf",
cTmpDir: "\\tmp\\apache\\service\\",
nNumber: +10
},
{
'cExeName': "apache.exe",
'cName': "apache_wsrest.service",
'cDislpayName': ".apache_wsrest",
'cTmpDir': "\\tmp\\apache\\service\\"
},
{
"cExeName": 'apache.exe',
"cName": 'apache_wssoap.service',
"cDislpayName": '.apache_wssoap',
"cTmpDir": '\\tmp\\apache\\service\\'
},
{
"cExeName": "apache.exe",
"cName": "apache.service",
"cDislpayName": ".apache",
"cTmpDir": "\\tmp\\apache\\service\\"
},
{
"cExeName": "apache.exe",
"cName": "apache_exclusivo.service",
"cDislpayName": ".apache_exclusivo",
"cTmpDir": "\\tmp\\apache\\service\\"
}
]
}
Exemplo 4:
{
// Comentário em JSON5
name: "JSON5 Example", // Chaves não precisam de aspas
version: 1.0, // Números podem ser escritos diretamente
isEnabled: true, // Booleanos também são suportados
features: [
"comments",
"trailing commas", // Última vírgula não causa erro
"unquoted keys",
"multi-line strings",
"hexadecimal, octal, binary numbers", // Última vírgula não causa erro
],
settings: {
theme: "dark",
fontSize: 14,
shortcuts: {
save: "Ctrl+S",
open: "Ctrl+O",
close: "Ctrl+W"
}
},
nested: {
description: "Este é um exemplo de JSON5 com mais detalhes",
specialChar: "✓",
metadata: {
createdBy: "ChatGPT",
createdAt: "2025-02-01T12:00:00Z",
tags: ["example", "json5", "rich"]
}
},
numbers: {
decimal: 255, // Decimal padrão
hexadecimal: 0xFF, // Hexadecimal
octal: 0o377, // Octal
binary: 0b11111111 // Binário
}
}
Hashtags Relacionadas
#DNATech, #JSON5, #JSON, #TLPP, #AdvPL
_Créditos das imagens: ChatGPT_ # Suporte a JSON5 em AdvPL/TLPP [JSON5](https://json5.org/) é uma extensão do popular formato de arquivo JSON que tem como objetivo ser mais fácil de escrever e manter manualmente (por exemplo, para arquivos de configuração). Ele não foi projetado para comunicação entre máquinas. (Continue usando JSON ou outros formatos de arquivo para isso. 🙂) O JSON5 foi iniciado em 2012 e, a partir de 2022, recebe mais de 65 milhões de downloads por semana, está entre os 0,1% dos pacotes mais utilizados no npm e foi adotado por grandes projetos como Chromium, Next.js, Babel, Retool, WebStorm e outros. Também possui suporte nativo em plataformas da Apple, como macOS e iOS. Formalmente, o formato de Intercâmbio de Dados JSON5 é um superconjunto do JSON (ou seja, arquivos JSON válidos sempre serão arquivos JSON5 válidos) que expande sua sintaxe para incluir algumas produções do ECMAScript 5.1 (ES5). Além disso, ele é um subconjunto do ES5, o que significa que arquivos JSON5 válidos sempre serão válidos em ES5.* Esta biblioteca AdvPL/TLPP é uma implementação de referência para análise e serialização de JSON5. --- ### Exemplos ***Exemplo 1:*** ```JSON { // comments unquoted: 'and you can quote me on that', singleQuotes: 'I can use "double quotes" here', lineBreaks: "Look, Mom! \ No \\n's!", hexadecimal: 0xdecaf, leadingDecimalPoint: .8675309, andTrailing: 8675309., positiveSign: +1, trailingComma: 'in objects', andIn: ['arrays',], "backwardsCompatible": "with JSON", } ``` ***Exemplo 2:*** ```JSON { // Comments are allowed name: 'John Doe', // No need for quotes around keys age: +30, // Trailing commas are allowed isStudent: false, hobbies: [ "reading", "gaming", "coding", // Trailing comma in arrays ], } ``` ***Exemplo 3:*** ```JSON { "Services": [ { cExeName: "apache.exe", cName: "apache_wf.service", cDislpayName: ".apache_wf", cTmpDir: "\\tmp\\apache\\service\\", nNumber: +10 }, { 'cExeName': "apache.exe", 'cName': "apache_wsrest.service", 'cDislpayName': ".apache_wsrest", 'cTmpDir': "\\tmp\\apache\\service\\" }, { "cExeName": 'apache.exe', "cName": 'apache_wssoap.service', "cDislpayName": '.apache_wssoap', "cTmpDir": '\\tmp\\apache\\service\\' }, { "cExeName": "apache.exe", "cName": "apache.service", "cDislpayName": ".apache", "cTmpDir": "\\tmp\\apache\\service\\" }, { "cExeName": "apache.exe", "cName": "apache_exclusivo.service", "cDislpayName": ".apache_exclusivo", "cTmpDir": "\\tmp\\apache\\service\\" } ] } ``` ***Exemplo 4:*** ```JSON { // Comentário em JSON5 name: "JSON5 Example", // Chaves não precisam de aspas version: 1.0, // Números podem ser escritos diretamente isEnabled: true, // Booleanos também são suportados features: [ "comments", "trailing commas", // Última vírgula não causa erro "unquoted keys", "multi-line strings", "hexadecimal, octal, binary numbers", // Última vírgula não causa erro ], settings: { theme: "dark", fontSize: 14, shortcuts: { save: "Ctrl+S", open: "Ctrl+O", close: "Ctrl+W" } }, nested: { description: "Este é um exemplo de JSON5 com mais detalhes", specialChar: "✓", metadata: { createdBy: "ChatGPT", createdAt: "2025-02-01T12:00:00Z", tags: ["example", "json5", "rich"] } }, numbers: { decimal: 255, // Decimal padrão hexadecimal: 0xFF, // Hexadecimal octal: 0o377, // Octal binary: 0b11111111 // Binário } } ``` --- ## Hashtags Relacionadas #DNATech, #JSON5, #JSON, #TLPP, #AdvPL ---
DNA Tech : JSONArray :: Suporte a serialização do formato JSON5
TOTVS : JSONObject :: Sem Suporte a serialização do formato JSON5
Postagens mais visitadas
BlackTDN :: RLeg ~ Desvendando a Função ParamBox
- Gerar link
- X
- Outros aplicativos
Protheus :: Chamando Funções do Menu Diretamente e sem a Necessidade de Login
- Gerar link
- X
- Outros aplicativos
Comentários
Postar um comentário