【问题标题】:How to remove back slash ("\"") in JsonArray using Android Studio?如何使用 Android Studio 删除 JsonArray 中的反斜杠 ("\"")?
【发布时间】:2019-08-16 07:35:55
【问题描述】:

我正在尝试使用 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 添加多个对象,而不使用带有反斜杠的字符串。

【问题讨论】:

    标签: java android string


    【解决方案1】:

    不需要字符串替换。

    只需替换

    jsonArray1.put(requestJson1.toString());
    

    通过

    jsonArray1.put(requestJson1)
    

    您需要一个 JSON 对象数组,而不是字符串。

    【讨论】:

    • 感谢回复,我已经使用 jsonArray1.put(requestJson1) jsonArray1 打印最后一个 JsonObject 的数据。但我需要将所有 JsonObject 放入 JsonArray。
    • 再次阅读我的答案。您目前没有将 JSON 对象放入数组中,而是将它们的字符串表示形式。
    • 实际上,先生,您的回答对我来说并不满意。如何在我的 jsonObject 中删除“\”。
    • 那是因为您的问题是 X-Y 问题的一个实例。如果操作正确,则无需修改生成的字符串。另见code.tutsplus.com/tutorials/…
    【解决方案2】:

    "result" 是您获得的 JSON 格式字符串(如您的 OutPut)。

    JSONArray jsonArray = new JSONArray(result);
    

    例如获取stock_name:

    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");
    }
    

    【讨论】:

      【解决方案3】:

      将“/”替换为“”

      result = result.replaceAll("/","");
      JSONArray jsonArray = new JSONArray(result);
      

      现在 jsoanArray 中没有“/”数据。更多请看this

      【讨论】:

        【解决方案4】:

        删除散布在各处的各种toString() 调用,并创建一个新的JSONObject 以将每个ItemModel 添加到您的数组中(否则您的数组中只会有一个项目)。

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2018-12-10
          • 1970-01-01
          • 1970-01-01
          • 2016-06-16
          • 2016-12-05
          • 1970-01-01
          • 1970-01-01
          • 2012-12-21
          相关资源
          最近更新 更多