Jump to content

dev botao

  • Este tópico foi criado há 2618 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á 2618 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.

The popup will be closed in 10 seconds...