如何将数据添加到JSON数组而不是ArrayList?

14 浏览
0 Comments

如何将数据添加到JSON数组而不是ArrayList?

我想要做的是将一个Map添加到ArrayList中,然后再添加到JsonArray中。我打算直接将这些Map添加到json数组中。

//初始化ArrayList、Map和Json数组

private ArrayList> itemData = new ArrayList<>();

private Map itemselected = new HashMap<>();

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++;

}

0
0 Comments

问题的出现的原因是想要将数据添加到一个JSON数组中,而不是一个ArrayList中。解决方法是使用HashMap来存储数据,并将数据添加到一个JSONArray中的JSON对象中。

代码示例:

private Map itemselected = 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请求。

如果需要进一步讨论,请在聊天室中继续讨论

0
0 Comments

问题的出现原因:用户想要将数据添加到一个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数组中。

用户进一步提问:请检查下面的代码,我该如何在这种情况下使用你的代码呢?我尝试做类似的事情。谢谢。

文章到此结束。

0