Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2446 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Pessoal, 

Inevitavelmente, cada vez mais JSON vem se tornando o protocolo de comunicação mais utilizados entre as aplicações.

Sabemos que existem bibliotecas de conversão nativas tanto para o Delphi quanto para o Lazarus. E tantas outras de terceiros, de código fechado e de código aberto.

Creio que cedo ou tarde, o projeto ACBr terá que fazer uso de alguma biblioteca JSON, então gostaria de propor aqui uma discussão pra validar/decidir o uso de JSON dentro do projeto ACBr. Poderia-se iniciar com algumas questões:

Criar uma biblioteca própria? Criada do zero, ou se basear em alguma já existente?

Usar uma existente e colocar dentro de /Terceiros/? Qual biblioteca existente utilizar?

Usar nativo? IFDEF pra Lazarus e Delphi/XE?

 

Estou levantando essa questão, pois estou criando um componente pra realizar a comunicação com o COSMOS da Bluesoft fazendo uso da TACBrHTTP, onde o retorno é JSON. Na qual, quem sabe após a definição de uma biblioteca JSON, esse componente poderá fazer parte do projeto ACBr... claro se o mesmo for aprovado.

 

Aguardo uma discussão :)

 

[]'s

 

 

  • Curtir 1
  • Consultores
Postado

Olá Giquieu,

   Eu sugiro "De Terceiros". Já fazemos isso para comunicação serial (synapse) e geração de relatórios (Fortes).

   Nativo só é vantajoso se for compatível entre as várias versões do Delphi e o Lazarus.

   Manter uma biblioteca JSON no projeto ACBr seria excelente. Mas ela tem funcionalidade tão abrangente, que provavelmente teríamos mais apoio e menor probabilidade de erros se usássemos uma de terceiros. Ganharíamos em tempo e em estabilidade.

   Quanto a qual usar teria que pesquisar primeiro. Tem 3 aqui só pra começar. Teria que analisar a licença e se atende ao requisito de funcionar com o Lazarus e pelo menos nas primeiras versões do Delphi que aceita Unicode:

https://github.com/ahausladen/JsonDataObjects

https://www.delphitools.info/2012/09/17/spotlight-on-dwsjson/

https://sourceforge.net/projects/is-webstart/

https://sourceforge.net/projects/lkjson/

  • Curtir 2

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Membros Pro
Postado

Realmente uma biblioteca de JSON é muito abrangente e demandaria um bom esforço inicial pra criar uma.

No meu ver, o melhor dos mundos seria usar as bibliotecas nativas, porém será necessário um bom trabalho pra criar uma Fachada que encapsule as bibliotecas do Delphi e do Lazarus. Pelo menos a maioria das classes entre Delphi/Lazarus tem o mesmo nome... (TJSONObject, TJSONString, TJSONNumber, etc).

Mas diante do que o Elton disse, sobre estabilidade, erros, no final fica melhor usar uma de Terceiro mesmo. xD

Já usei a LkJSON, tanto no Delphi quanto no Lazarus. Apesar do repositório dela esta parada, ela está estável. 

Achei interessante a:

https://github.com/hgourvest/superobject - Para Delphi e Lazarus.

 

Eu não intendo muito bem essa questão de licença... qual licença que a biblioteca deve estar registrada pra podermos usar e modificar se necessário?

Postado

Bom dia.

O Delphi, a partir da versão XE5 ( se não estiver enganado), disponibilizou uma unit (Rest.JSON), que faz todo o trabalho braçal para você com apenas uma única linha de código.

Objecto para JSON

SJson := TJson.ObjectToJsonString(FClienteItens)

Json para Classe (O método cria o objeto):

FClienteItens := TJson.JsonToObject<TClienteItens>(SJson);

Simples assim

Atenciosamente.

------------------------------------------------

Jéter Rabelo Ferreira
Campestre/MG

  • 2 semanas depois ...
  • Consultores
Postado
Em 06/07/2016 at 09:49, Giquieu disse:

Eu não intendo muito bem essa questão de licença... qual licença que a biblioteca deve estar registrada pra podermos usar e modificar se necessário?

Apache, MIT, MPL, talvez LGPL... Não pode ser GPL.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 1 ano depois...
  • Membros Pro
Postado

@Daniel Simoes

Acabei de atualizar o ACBr e notei que vc commitou um biblioteca de Terceiro para trabalhar com JSON.

Revision: 14751
Author: dopi
Date: segunda-feira, 26 de fevereiro de 2018 18:51:58

 

Queria te mostrar a PasJSON desenvolvida pelo Benjamin (BeRo1985), totalmente compatível com Delphi/FPC.

https://github.com/BeRo1985/pasjson

Achei o Parser do PasJSON muito mais otimizado do que a Json4Delphi. Estou testando ela no Lazarus/FPC e não tive nenhum problema.

Poderia considerar um estudo, pra que ela se torne a Lib de JSON do projeto ACBr?

 

  • Este tópico foi criado há 2446 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.