如何将数据添加到JSON数组而不是ArrayList?
如何将数据添加到JSON数组而不是ArrayList?
我想要做的是将一个Map添加到ArrayList中,然后再添加到JsonArray中。我打算直接将这些Map添加到json数组中。
//初始化ArrayList、Map和Json数组
private ArrayList
private Map
JSONArray itemSelectedJson = new JSONArray();
private void selectedItems() {
if (invEstSwitch.isChecked()) {
billType = textViewEstimate.getText().toString();
} else {
billType = textViewInvoice.getText().toString();
}
itemselected.put("custInfo", custSelected.toString());
itemselected.put("invoiceNo", textViewInvNo.getText().toString());
itemselected.put("barcode", barCode.getText().toString());
itemselected.put("desc", itemDesc.getText().toString());
itemselected.put("weight", weightLine.getText().toString());
itemselected.put("rate", rateAmount.getText().toString());
itemselected.put("makingAmt", makingAmount.getText().toString());
itemselected.put("net_rate", netRate.getText().toString());
itemselected.put("itemTotal", itemtotal.getText().toString());
itemselected.put("vat", textViewVat.getText().toString());
itemselected.put("sum_total", textViewSum.getText().toString());
itemselected.put("bill_type", billType);
itemselected.put("date", textViewCurrentDate.getText().toString());
//将Map添加到ArrayList中
itemData.add(index, itemselected);
itemSelectedJson = new JSONArray(Arrays.asList(itemData));
index++;
}
问题的出现的原因是想要将数据添加到一个JSON数组中,而不是一个ArrayList中。解决方法是使用HashMap来存储数据,并将数据添加到一个JSONArray中的JSON对象中。
代码示例:
private Mapitemselected = new HashMap<>(); private void selectedItems() { JSONArray itemSelectedJson = new JSONArray(); // 获取所有的键 Set keys = itemselected.keySet(); // 将数据作为JSON对象添加到JSONArray中 for(String key : keys) { itemSelectedJson.put( new JSONObject().put(key, itemselected.get(key)) ); } } String jsonString = itemSelectedJson.toString();
这样,就不需要使用ArrayList来填充JSONArray了。通过调用JSONArray的toString()方法,可以获取JSON字符串。
在使用Volley库发送请求时,可以根据需要使用getParams()方法来添加参数。可以参考这个博客中的例子来了解如何使用Volley库发送POST请求。
如果需要进一步讨论,请在聊天室中继续讨论。
问题的出现原因:用户想要将数据添加到一个JSON数组而不是一个ArrayList,但是不清楚如何实现。
解决方法:可以按照以下方式实现:
JSONArray jRootArray = new JSONArray(); for (int i = 1; i <= 20; i++) { JSONObject jInnerObject = new JSONObject(); try { jInnerObject.put(String.valueOf(i), "Hello " + i); } catch (JSONException e) { e.printStackTrace(); } jRootArray.put(jInnerObject); } Log.i("JRootArray", jRootArray.toString());
希望这对您有所帮助。
用户进一步提问:你能详细说明一下吗?我想尝试一下。
解答:在这种情况下,你需要将键和值放入你的JSON对象中,然后在填充数据后将JSON对象放入JSON数组中。
用户进一步提问:请检查下面的代码,我该如何在这种情况下使用你的代码呢?我尝试做类似的事情。谢谢。
根据用户的要求,可以将问题的原因、解决方法和用户进一步提问的回答整理成一篇文章:
用户:如何将数据添加到JSON数组而不是ArrayList?
问题的原因:用户想要将数据添加到一个JSON数组而不是一个ArrayList,但是不清楚如何实现。
解决方法:可以按照以下方式实现:
JSONArray jRootArray = new JSONArray(); for (int i = 1; i <= 20; i++) { JSONObject jInnerObject = new JSONObject(); try { jInnerObject.put(String.valueOf(i), "Hello " + i); } catch (JSONException e) { e.printStackTrace(); } jRootArray.put(jInnerObject); } Log.i("JRootArray", jRootArray.toString());
希望这对您有所帮助。
用户进一步提问:你能详细说明一下吗?我想尝试一下。
解答:在这种情况下,你需要将键和值放入你的JSON对象中,然后在填充数据后将JSON对象放入JSON数组中。
用户进一步提问:请检查下面的代码,我该如何在这种情况下使用你的代码呢?我尝试做类似的事情。谢谢。
文章到此结束。