Ir para conteúdo
  • Cadastre-se

dev botao

Como Converter XML para JSON no ACBr?


Ver Solução Respondido por Juliomar Marchetti,

Recommended Posts

  • Membros Pro
Postado

Olá, pessoal!

Estou trabalhando com os componentes do ACBr e preciso converter um XML para JSON. Gostaria de saber se o ACBr possui algum método nativo para essa conversão ou se algum dos componentes já oferece suporte para exportação direta para JSON.

Alguém já precisou fazer isso e pode compartilhar uma solução? Caso não exista um método direto, qual seria a melhor abordagem para essa conversão usando Delphi?

Agradeço qualquer ajuda! 🚀

  • Membros Pro
Postado

Muito obrigado.

Em 03/03/2025 at 15:59, Juliomar Marchetti disse:

De XML para JSON não tem

existe o TACBrJSON que tu serializa objetos e deserializa

 

  • Consultores
Postado

Tópico movido para a área do ACBr Pro, para que o SLA de respostas seja considerado

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Consultores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultor SAC ACBr

Alexandre de Paula
Ajude o Projeto ACBr crescer - Assine o SAC                    

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  ícone Discórdia Discord   

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

 

 

  • Moderadores
Postado
15 horas atrás, SG Sistemas disse:

Muito obrigado.

 

não testei mas olha algo que poderia usar

uses
  System.SysUtils, System.Classes, Xml.XMLDoc, Xml.XMLIntf, System.JSON;

function XMLToJSON(const XML: string): string;
var
  XMLDoc: IXMLDocument;
  RootNode: IXMLNode;
  JSONObject: TJSONObject;

  procedure ParseXMLNode(Node: IXMLNode; ParentJSON: TJSONObject);
  var
    ChildNode: IXMLNode;
    ChildJSON: TJSONObject;
    JSONArray: TJSONArray;
    I: Integer;
  begin
    for I := 0 to Node.ChildNodes.Count - 1 do
    begin
      ChildNode := Node.ChildNodes[I];
      if ChildNode.ChildNodes.Count > 0 then
      begin
        ChildJSON := TJSONObject.Create;
        ParentJSON.AddPair(ChildNode.NodeName, ChildJSON);
        ParseXMLNode(ChildNode, ChildJSON);
      end
      else
        ParentJSON.AddPair(ChildNode.NodeName, ChildNode.Text);
    end;
  end;

begin
  XMLDoc := TXMLDocument.Create(nil);
  XMLDoc.LoadFromXML(XML);
  RootNode := XMLDoc.DocumentElement;
  JSONObject := TJSONObject.Create;
  try
    ParseXMLNode(RootNode, JSONObject);
    Result := JSONObject.ToString;
  finally
    JSONObject.Free;
  end;
end;

procedure Test;
var
  XML, JSON: string;
begin
  XML := '<root><item><name>Item 1</name><value>10</value></item><item><name>Item 2</name><value>20</value></item></root>';
  JSON := XMLToJSON(XML);
  WriteLn(JSON);
end;

begin
  Test;
end.

 

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.