Nao consigo exibir ArrayList em jFrame consumindo API em java

Olá!

Vou ser o mais claro possível para que eu possa ser ajudado sou novato em Java.

estou desenvolvendo uma aplicação pessoa que deu inicio a partir de um projeto da faculdade esta aplicação esta em Java Swing estou utilizando o NetBeans.

Necessidade: na minha Frame de cadastro de empresa tenho uma campo de CNPJ que ao digitar ele consome a API da Receitaws.

Problema: O formulário nao esta sendo preenchido totalmente como o esperado. não consigo fazer extração de um array do Json, todos os campos são preenchidos corretamente menos o de Atividade principal e secundaria que são um array de array.

Obs: o campo de Atividade principal e secundaria e um TextArea, ha alguma linhas comentadas fiz pq ela esta causando erro. se poderem me ajudar nisso tbm agradeço.

Objetivo: preencher todos os campos do formulario, vou postar os códigos.

Este e o código que vai na view onde tem o campo de texto que inseri o cnpj pra consulta.

private void txtCnpjKeyReleased(java.awt.event.KeyEvent evt) {                                    
    // TODO add your handling code here:
    txtNome.setText("Aguarde...");
    if (txtCnpj.getText().length() == 14) {
        try {
            Empresa empresa = new Empresa();

            empresa = IntegracaoApiBS.buscarCnpj(txtCnpj.getText());

            DecimalFormat df = new DecimalFormat("###,###,###,##0.00");
            txtCnpj.setText(empresa.getCnpj());

            lblStatusCep.setIcon(empresa.getLblStatusCnpj());
            txtCnpj.setText(empresa.getCnpj());
            txtTipo.setText(empresa.getTipo());
            txtInscricaoEstadual.setText(empresa.getTxtInscricaoEstadual());
            txtNome.setText(empresa.getNome());
            txtNomeFantasia.setText(empresa.getFantasia());
            txtDataAbertura.setText(empresa.getAbertura());
            txtPorte.setText(empresa.getPorte());
            txtEmail.setText(empresa.getEmail());
            txtSituacaoCadastral.setText(empresa.getSituacao());
            txtCapitalSocial.setText(df.format(Double.parseDouble(empresa.getCapital_social())));
            txtDataSituacaoCadastral.setText(empresa.getData_situacao());
            txtAtividadePrincipal.setText(empresa.getAtividade_principal().toString());
            txtAtividadeSecundaria.setText(empresa.getAtividades_secundarias().toString());
            //txtNaturezaJuridica.setText(empresa.getNatureza_juridica().toString());
            txtTelefone.setText(empresa.getTelefone());
            txtCelular.setText(empresa.getTxtCelular());
            txtResponsalvel.setText(empresa.getTxtResponsalvel());
            txtEndereco.setText(empresa.getLogradouro());
            txtNumero.setText(empresa.getNumero());
            txtComplemento.setText(empresa.getComplemento());
            txtBairro.setText(empresa.getBairro());
            txtCidade.setText(empresa.getMunicipio());
            cmbEstado.setSelectedItem(empresa.getUf());
            txtCep.setText(empresa.getCep());
        } catch (Exception ex) {
        }
    }
}                                   

Aqui e a classe Empresa onde contem os Getters e Setters declarado comforme a solicitação do site Receita WS

package model;

import Dao.EmpresaDao; import business.IntegracaoApiBS; import java.util.*; import javax.swing.Icon;

public class Empresa {private String cnpj;
private String nome;
private String fantasia;
private String porte;
//private ArrayList<AtividadeDto> natureza_juridica = new ArrayList<>();
private String situacao;
private String data_situacao;
private String abertura;
private ArrayList<AtividadeDto> atividade_principal = new ArrayList<>();   
private ArrayList<AtividadeDto> atividades_secundarias = new ArrayList<>();
private String capital_social;
private String email;
private String telefone;
private String tipo;
private String logradouro;
private String numero;
private String complemento;
private String municipio;
private String bairro;
private String uf;
private String cep;
private String txtId;
private String txtDataCadastro;
private String txtInscricaoEstadual;
private String txtPesquisar;
private String txtResponsalvel;
private String txtCelular;
private Icon lblStatusCnpj;

public EmpresaDao empresa = new EmpresaDao();
public Endereco endereco = new Endereco();
public static IntegracaoApiBS consulta = new IntegracaoApiBS();

public Empresa() {
}

public ArrayList<AtividadeDto> getAtividade_principal() {
    return atividade_principal;
}

public void setAtividade_principal(ArrayList<AtividadeDto> atividade_principal) {
    this.atividade_principal = atividade_principal;
}
   
public ArrayList<AtividadeDto> getNatureza_juridica() {
    return natureza_juridica;
}

public void setNatureza_juridica(ArrayList<AtividadeDto> natureza_juridica) {
    this.natureza_juridica = natureza_juridica;
}

public ArrayList<AtividadeDto> getAtividades_secundarias() {
    return atividades_secundarias;
}

public void setAtividades_secundarias(ArrayList<AtividadeDto> atividades_secundarias) {
    this.atividades_secundarias = atividades_secundarias;
}

public String getCnpj() {
    return cnpj;
}

public void setCnpj(String cnpj) {
    this.cnpj = cnpj;
}

public String getNome() {
    return nome;
}

public void setNome(String nome) {
    this.nome = nome;
}

public String getFantasia() {
    return fantasia;
}

public void setFantasia(String fantasia) {
    this.fantasia = fantasia;
}

public String getPorte() {
    return porte;
}

public void setPorte(String porte) {
    this.porte = porte;
}

public String getSituacao() {
    return situacao;
}

public void setSituacao(String situacao) {
    this.situacao = situacao;
}

public String getData_situacao() {
    return data_situacao;
}

public void setData_situacao(String data_situacao) {
    this.data_situacao = data_situacao;
}

public String getAbertura() {
    return abertura;
}

public void setAbertura(String abertura) {
    this.abertura = abertura;
}

public String getCapital_social() {
    return capital_social;
}

public void setCapital_social(String capital_social) {
    this.capital_social = capital_social;
}

public String getEmail() {
    return email;
}

public void setEmail(String email) {
    this.email = email;
}

public String getTelefone() {
    return telefone;
}

public void setTelefone(String telefone) {
    this.telefone = telefone;
}

public String getTipo() {
    return tipo;
}

public void setTipo(String tipo) {
    this.tipo = tipo;
}

public String getLogradouro() {
    return logradouro;
}

public void setLogradouro(String logradouro) {
    this.logradouro = logradouro;
}

public String getNumero() {
    return numero;
}

public void setNumero(String numero) {
    this.numero = numero;
}

public String getComplemento() {
    return complemento;
}

public void setComplemento(String complemento) {
    this.complemento = complemento;
}

public String getMunicipio() {
    return municipio;
}

public void setMunicipio(String municipio) {
    this.municipio = municipio;
}

public String getBairro() {
    return bairro;
}

public void setBairro(String bairro) {
    this.bairro = bairro;
}

public String getUf() {
    return uf;
}

public void setUf(String uf) {
    this.uf = uf;
}

public String getCep() {
    return cep;
}

public void setCep(String cep) {
    this.cep = cep;
}

public String getTxtId() {
    return txtId;
}

public void setTxtId(String txtId) {
    this.txtId = txtId;
}

public String getTxtDataCadastro() {
    return txtDataCadastro;
}

public void setTxtDataCadastro(String txtDataCadastro) {
    this.txtDataCadastro = txtDataCadastro;
}

public String getTxtInscricaoEstadual() {
    return txtInscricaoEstadual;
}

public void setTxtInscricaoEstadual(String txtInscricaoEstadual) {
    this.txtInscricaoEstadual = txtInscricaoEstadual;
}

public String getTxtPesquisar() {
    return txtPesquisar;
}

public void setTxtPesquisar(String txtPesquisar) {
    this.txtPesquisar = txtPesquisar;
}

public String getTxtResponsalvel() {
    return txtResponsalvel;
}

public void setTxtResponsalvel(String txtResponsalvel) {
    this.txtResponsalvel = txtResponsalvel;
}

public String getTxtCelular() {
    return txtCelular;
}

public void setTxtCelular(String txtCelular) {
    this.txtCelular = txtCelular;
}

public Icon getLblStatusCnpj() {
    return lblStatusCnpj;
}

public void setLblStatusCnpj(Icon lblStatusCnpj) {
    this.lblStatusCnpj = lblStatusCnpj;
}
}

Aqui e a classe que faz a consulta da api no site.

package business;

import com.google.gson.; 
import java.io.IOException; 
import java.net.; 
import java.nio.charset.StandardCharsets; 
import javax.swing.JOptionPane; 
import model.Empresa;
import model.Endereco;

 public class IntegracaoApiBS {

public static Empresa buscarCnpj(String cnpj) throws IOException, Exception {
try {
     URL url = new URL("https://www.receitaws.com.br/v1/cnpj/" + cnpj);
     HttpURLConnection conexao = (HttpURLConnection) url.openConnection();
     conexao.setRequestMethod("GET");
     conexao.setDoInput(true);
     String convertJsonString = new String(conexao.getInputStream().readAllBytes(), StandardCharsets.UTF_8);
     Gson gson = new Gson();
     Empresa empresa = gson.fromJson(convertJsonString, Empresa.class);
     if (convertJsonString.length() == 53) {
         //lblStatusCnpj.setIcon(new javax.swing.ImageIcon("src/image/unconfirm.png"));
         //empresa.setLblStatusCep(new javax.swing.ImageIcon("src/image/unconfirm.png"));
         JOptionPane.showMessageDialog(null, "CNPJ Inválido não encontrado na base de Dados");
         empresa.setCnpj("");
     } else {
         //lblStatusCnpj.setIcon(new javax.swing.ImageIcon("src/image/confirm.png"));
         return empresa;
     }
 } catch (JsonSyntaxException | IOException msgErro) {
     JOptionPane.showMessageDialog(null, "Erro de conexão- status Code " + msgErro.toString());
 }
 return null;
 }
 }

Esta classe aqui fiz para tentar extrair o conteudo do array mais parece nao esta funcionando.

package model;

public class AtividadeDto {

    private String code;
    private String text;
    
    Empresa empresa = new Empresa();

    public AtividadeDto() {
    }

    public String getCode() {
        return code;
    }

    public void setCode(String code) {
        this.code = code;
    }

    public String getText() {
        return text;
    }

    public void setText(String text) {
        this.text = text;
    }

    public void atividadeDto() {
        for (int i = 0; i < empresa.getAtividade_principal().size(); i++) {
            setCode(empresa.getAtividade_principal().toString());
            for (int x = i; x < empresa.getAtividade_principal().size(); x++) {
                setText(empresa.getAtividade_principal().toString());
            }
        }
    }
}