我正在尝试使用JsonArray更新服务器上的多个JsonObject数据。
输出:-
["{\"stock_name\":\"1\",\"no_of_share\":\"1\",\"tranz_dt\":\"1\",\"buy_price\":\"1\"}","{\"stock_name\":\"2\",\"no_of_share\":\"2\",\"tranz_dt\":\"2\",\"buy_price\":\"2\"}","{\"stock_name\":\"3\",\"no_of_share\":\"3\",\"tranz_dt\":\"3\",\"buy_price\":\"3\"}"]
输出代码:
for (int i = 0; i < ItemModelList.size(); i++) {
requestJson1.put("stock_name", ItemModelList.get(i).getStock_name().toString());
requestJson1.put("no_of_share", ItemModelList.get(i).getNo_of_share().toString());
requestJson1.put("tranz_dt", ItemModelList.get(i).getTranz_dt().toString());
requestJson1.put("buy_price", ItemModelList.get(i).getBuy_price().toString());
jsonArray1.put(requestJson1.toString());
}
requestJson.put("stockrow", jsonArray1.toString().replaceAll("\"", ""));
我期望结果使用JsonArray添加多个对象,且不带反斜杠。
答案 0 :(得分:1)
无需替换字符串。
只需更换
jsonArray1.put(requestJson1.toString());
作者
jsonArray1.put(requestJson1)
您需要一个JSON对象数组,而不是字符串。
答案 1 :(得分:0)
“结果”是您获取的JSON格式字符串(如OutPut)。
JSONArray jsonArray = new JSONArray(result);
例如,获取股票名称:
String[] stock_name;
stock_name = new String[jsonArray.length()];
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject jsonData = jsonArray.getJSONObject(i);
stock_name[i] = jsonData.getString("stock_name");
}
答案 2 :(得分:0)
将“ /”替换为“”
result = result.replaceAll("/","");
JSONArray jsonArray = new JSONArray(result);
现在jsoanArray中没有“ /”数据。要了解更多,请查看this
答案 3 :(得分:0)
删除各种点缀的toString()
调用,并为每个ItemModel创建一个新的JSONObject
添加到您的数组中(否则,您最终将在数组中得到一个项目)。
for (int i = 0; i < ItemModelList.size(); i++) {
final ItemModel im = ItemModelList.get(i);
final JSONObject o = new JsonObject();
o.put("stock_name", im.getStock_name());
o.put("no_of_share", im.getNo_of_share());
o.put("tranz_dt", im.getTranz_dt());
o.put("buy_price", im.getBuy_price());
jonArray1.put(im);
}
requestJson.put("stockrow", jsonArray1);