在其他JSONArray中创建JSONArray?

时间:2015-09-28 20:21:13

标签: arrays jsonobject

我有两个班级SaleItemSale。我尝试使用Sale的所有对象创建一个JSONArray,并在此JSONArray中添加所有ItemSale。问题是我不知道如何做到这一点。

我需要这个:Sale:{id:1, data:2015-09-28, cliente_id:1}, ItemSale:[{produto:5, quantidade:10, valorUnitario:5.00, totalItem:50.00}], Sale:{id:2, data:2015-09-28, cliente_id:33}, ItemSale:[{produto:10, quantidade:1, valorUnitario:5.00, totalItem:5.00}, {produto:23, quantidade:1, valorUnitario:10.00, totalItem:10.00}, {produto:25, quantidade:1, valorUnitario:20.00, totalItem:20.00}]

我正在尝试这个。

private JSONObject getJSONObjectToSend(){
        JSONObject jsonVendas = new JSONObject();
        JSONArray jsonArrayVenda = new JSONArray();
        JSONArray jsonArrayItems = new JSONArray();

        VendaPersist vp = new VendaPersist(getActivity());
        //list of sale
        List<Sale> lista = vp.getAllVendasFinalizadas();
        try {
            if(lista.size() > 0){
                for(Sale v : lista){
                    JSONObject jsonObjectVenda = new JSONObject();

                    //Sale
                    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 Sale
                    for(ItemSale 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("Sale", jsonArrayVenda);
                }
            }
        } catch (JSONException e) {
            Log.e(TAG, e.getLocalizedMessage());
        }
        return jsonVendas;
    }

1 个答案:

答案 0 :(得分:0)

您不是构建JSONArray而是构建JSONObject。

JSONArray jsonArr = new JSONArray();
jsonArr.put(jsonVendas);