我有两个班级Sale
和ItemSale
。我尝试使用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;
}
答案 0 :(得分:0)
您不是构建JSONArray而是构建JSONObject。
JSONArray jsonArr = new JSONArray();
jsonArr.put(jsonVendas);