Ler lista dentro de outra lista

Bom dia,

Tenho um classe que envia meus dados salvos no Sqlite do Android para um webservice.
Faço uma consulta no banco e retorno uma lista de Objetos de pedidos.
Dentro do meu objeto pedido tem uma lista de itens.

Quando envio a lista de Objetos pedidos para a classe que envia para o webservice eu preciso ler a lista e separar os cabeçalhos e os itens referentes a cada um?

Como fazer isso?

Minha classe de envio.

[code]package br.com.loadmobile.utilits;

import java.math.BigDecimal;
import java.util.ArrayList;

import br.com.loadmobile.DAO.BuscaPedidoDAO;
import br.com.loadmobile.Single.PedidoSingle;
import br.com.loadmobile.serealizar.CaixaSerial;
import br.com.loadmobile.serealizar.ClienteSerial;
import br.com.loadmobile.serealizar.PedidoCabrecSerial;
import br.com.loadmobile.serealizar.PedidoItemSerial;
import br.com.loadmobile.serealizar.ProdutoSerial;
import br.com.loadmobile.serealizar.RecebimentoSerial;
import br.com.loadmobile.serealizar.VendedorSerial;
import br.com.loadmobile.serealizar.tpSaidaSerial;

import com.embarcadero.javaandroid.DSProxy.TServerMethodos1;
import com.embarcadero.javaandroid.DSRESTConnection;
import com.embarcadero.javaandroid.TJSONArray;
import com.embarcadero.javaandroid.TJSONObject;

import android.app.ProgressDialog;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.os.AsyncTask;
import android.util.Log;

public class EnviaPedido extends AsyncTask<Void, String, Void> {

/* Context */
private Context context;

/* Objetos de conexao */
private DSRESTConnection conn;
private TServerMethodos1 serv;

/* ProgressDialog */
private ProgressDialog dialog;

private String retorno = "";
private DB dbh;
private SQLiteDatabase bancoDados;
private Context ctx;

private CaixaSerial caixa;
private ArrayList<PedidoCabrecSerial> pedido;

public EnviaPedido(Context ctx) {

    Log.d("SisBarMobile - AtEnviaPedido", "AtEnviaPedido");

    this.context = ctx;

    conn = Salva_Preferences.getConnection(ctx);
    serv = new TServerMethodos1(conn);
    //pedido = new PedidoCabrecSerial();
    //pedido = new BuscaPedidoDAO(ctx).buscaPedido();
    caixa = new CaixaSerial();

}

@Override
protected void onPreExecute() {
    super.onPreExecute();
    Log.d("LoadSystem - AtEnviaPedido", "onPreExecute");

    dialog = ProgressDialog.show(context, "Aguarde", "Salvando dados...");
}

@Override
protected Void doInBackground(Void... arg0) {

    Log.d("LoadSystem - AtEnviaPedido", "doInBackground");

    salvarDados();

    return null;
}

@Override
protected void onPostExecute(Void result) {
    super.onPostExecute(result);
    Log.d("SisBarMobile - AtEnviaPedido", "onPostExecute");

    finalizaDialog();
    
    /*
     * Exibir um alerta ao usuário
     */
    if (!retorno.equals("")) {
        if (!retorno.contains("ERRO")) {

            Salva_Preferences.alert(context, "Informação",
                    "Pedido Gravado com sucesso!!!");
            
            PedidoSingle.getInstance().setUpdating(false);

        } else {

            Salva_Preferences.alert(context, "Atenção", "Erro: " + retorno);

        }
    }
}

@Override
protected void onProgressUpdate(String... values) {
    super.onProgressUpdate(values);
    Log.d("LoadSystem - AtEnviaPedido", "onProgressUpdate");

    
}


private void finalizaDialog() {
    
    Log.d("LoadSystem - AtEnviaPedido", "finalizaDialog");
    
    if (dialog != null) {
        dialog.hide();
        dialog.dismiss();
        dialog = null;
    }
}

/*
 * Preenche os Objetos JSON e envia para o servidor
 */
private void salvarDados() {

    Log.d("LoadSystem - AtEnviaPedido", "salvarDados");

    /*
     * Receber o cabeçalho e os itens do pedido
    
     */

    
    
    
    //ArrayList<PedidoItemSerial> aItens = pedido.getItens();
    CaixaSerial aCaixa = caixa;

    try {
        
        pedido = new BuscaPedidoDAO(context).buscaPedido();
        
        for (PedidoCabrecSerial cab : pedido) {
        //for (int i = 0; i < pedido.size(); i++)   {
        //  PedidoCabrecSerial cab = pe
        //  cab = pedido;
            ArrayList<PedidoItemSerial> aItens = new ArrayList<PedidoItemSerial>();
        

        /*
         * #########################################################
         * ****************** Cabeçalho ****************************
         * #########################################################
         */
        TJSONObject jsCabec = new TJSONObject();
        jsCabec.addPairs("CODMOVENDA", cab.getCodmovenda());
        jsCabec.addPairs("DATA", cab.getData());
        jsCabec.addPairs("HORA", cab.getHora());
        jsCabec.addPairs("CODTIPOSAI", cab.getTipoSaida().getCodSaida());
        jsCabec.addPairs("CODREC", cab.getRecebimento().getCodRec());
        jsCabec.addPairs("CODVENDED", cab.getVendedor().getCodigo());
        jsCabec.addPairs("CODCLI",cab.getCliente().getCodigoCli());
        jsCabec.addPairs("TABVEND",cab.getTabVenda());
        jsCabec.addPairs("NOMECLI", cab.getCliente().getNomeCli());
        jsCabec.addPairs("NUMPED",cab.getNumped());
        jsCabec.addPairs("TOTVENDA", cab.getTotalPagar().doubleValue());
        jsCabec.addPairs("STATUS",cab.getStatus());
        
        
       
                                
        
        /*
         * #########################################################
         * ********************** Itens ****************************
         * #########################################################
         */

        TJSONArray aItem = new TJSONArray();
        aItens = cab.getItens();
        

        for (int e = 0; e < aItens.size(); e++) {

            PedidoItemSerial pi = aItens.get(e);
            TJSONObject item = new TJSONObject();

            
            item.addPairs("CODMOVENDA", cab.getCodmovenda());
            item.addPairs("CODMOVPROD", pi.getCodmovprod());
            item.addPairs("CODPROD", pi.getProduto().getcodProd());
            item.addPairs("QUANTIDADE", pi.getQtde().doubleValue());
            item.addPairs("TOTVENDA", pi.getValorTotal().doubleValue());                
            item.addPairs("ICMS", pi.getIcms().doubleValue());
            item.addPairs("VIPI", pi.getVipi().doubleValue());              
            item.addPairs("TOTAL", pi.getTotal().doubleValue() );
            aItem.add(item);
        }
        
        
    
        /*
         * #########################################################
         * ********************** Caixa ****************************
         * #########################################################
         */
        
        TJSONObject jsCaixa = new TJSONObject();
        jsCaixa.addPairs("CODCAIXA", aCaixa.getCodcaixa());
        jsCaixa.addPairs("DATA", aCaixa.getData());
        jsCaixa.addPairs("HISTORICO", aCaixa.getHistorico());
        jsCaixa.addPairs("NUMDOC", cab.getNumped());
        jsCaixa.addPairs("VALOR", String.format("%.2f", aCaixa.getValor().doubleValue()));
        jsCaixa.addPairs("OPERACAO", aCaixa.getOperacao());
        jsCaixa.addPairs("CODPC",aCaixa.getCodpc());
        jsCaixa.addPairs("CODUSER",aCaixa.getCoduser());
        jsCaixa.addPairs("CODCAIXAS", aCaixa.getCodcaixas());
        jsCaixa.addPairs("CODMOVENDA", cab.getCodmovenda());
        jsCaixa.addPairs("IDREC", aCaixa.getIdrec());
        jsCaixa.addPairs("DATALAN", aCaixa.getDatlan());
        jsCaixa.addPairs("VISTO", aCaixa.getVisto());
        jsCaixa.addPairs("CODSC", aCaixa.getCodsc());
        jsCaixa.addPairs("CODEMPRESA", aCaixa.getCodempresa());
        jsCaixa.addPairs("OBS", aCaixa.getObs());
        jsCaixa.addPairs("CODFORN", aCaixa.getCodforn());
        
        /*
         * Enviar o pedido para o WebService
         */
        retorno = serv.SetPedido(jsCabec, aItem);
        if (retorno!= "" ){
      
        }
        Log.d("Retnoro", retorno.toString());
        //retorno = serv.setCaixa(caixa);
        }   
    } catch (Exception e) {

        //onProgressUpdate("Erro: " + e.getMessage());
    
        Log.d("Erro ao Enviar pedido", e.toString());
    }
}

}[/code]