Jump to content

dev botao

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

Recommended Posts

  • Membros Pro
Posted

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

 

 

  • Like 1
  • Consultores
Posted

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/

  • Like 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
Posted

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?

Posted

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 weeks later...
  • Consultores
Posted
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 year later...
  • Membros Pro
Posted

@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á 2642 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.