I have 2 classes: Venda
and ItemVenda
. I want to create a JSONArray with all my sales and its items. I'm trying to use the JSONObject with JSONArray to create this but I can not do it.
For example: Venda:{id:1, data:2015-09-28, cliente_id:1}, ItemVenda:[{produto:5, quantidade:10, valorUnitario:5.00, totalItem:50.00}, {produto:21, quantidade:1, valorUnitario:5.00, totalItem:5.00}], Venda:{id:33, data:2015-08-28, cliente_id:15}, ItemVenda:[{produto:42, quantidade:1, valorUnitario:10.00, totalItem:10.00}, {produto:61, quantidade:2, valorUnitario:25.00, totalItem:50.00}]
In the example I have 2 sales with their respective items. How can I do this?
I'm trying like this.
private JSONObject getJSONObjectToSend(){
JSONObject jsonVendas = new JSONObject();
JSONArray jsonArrayVenda = new JSONArray();
JSONArray jsonArrayItems = new JSONArray();
VendaPersist vp = new VendaPersist(getActivity());
//lista de vendas
List<Venda> lista = vp.getAllVendasFinalizadas();
try {
if(lista.size() > 0){
for(Venda v : lista){
JSONObject jsonObjectVenda = new JSONObject();
//venda
jsonObjectVenda.put("dataVenda", new SimpleDateFormat("yyyy-MM-dd").format(v.getDataVenda()));
jsonObjectVenda.put("cliente", v.getCliente().getId_ws());
jsonObjectVenda.put("usuario", v.getIdUsuario());
jsonArrayVenda.put(jsonObjectVenda);
//itens venda
for(ItemVenda iv : v.getListaItems()){
JSONObject jsonObjectIV = new JSONObject();
jsonObjectIV.put("produto", iv.getProduto().getId_ws());
jsonObjectIV.put("quantidade", iv.getQuantidade());
jsonObjectIV.put("valorUnitario", iv.getValorUnitario());
jsonObjectIV.put("valorTotal", iv.getTotalItem());
jsonArrayItems.put(jsonObjectIV);
}
jsonArrayVenda.put(jsonArrayItems);
jsonVendas.put("Venda", jsonArrayVenda);
}
}
} catch (JSONException e) {
Log.e(TAG, e.getLocalizedMessage());
}
return jsonVendas;
}