JSONArray,ArrayList,SQL查询语句

求解答!
查询结果是4条数据,我放到ArrayList中
然后我下个查询方法中的条件是 ArrayList中 4条数, 我该怎么操作
应该是有4个decorations数组,现在只赋值了一个,能看出来是没有循环.

img

                 ArrayList<CustomerTankDecoration> customerTankDecorationId = tankMapper.selectDecorationId(((JSONObject) o).getIntValue("id"));
                JSONArray jsonDecorationId = JSONArray.parseArray(JSON.toJSONString(customerTankDecorationId));
                for (Object c : jsonDecorationId) {
                    ArrayList<TankDecoration> tankDecoration =
                            tankMapper.selectCustomerTankDecoration(BigInteger.valueOf(((JSONObject) c).getIntValue("decorationId")));
                    JSONArray jsonDecoration = JSONArray.parseArray(JSON.toJSONString(tankDecoration));
                    for (Object b : jsonDecoration) {
                        JSONObject jsonObjectDecoration = new JSONObject(new LinkedHashMap<>());
                        jsonObjectDecoration.put("code",((JSONObject) b).getBigInteger("code"));
                        jsonObjectDecoration.put("category",((JSONObject) b).getBigInteger("category"));
                        json.put("decorations",jsonDecoration);
                    }
                }

你put的是一个JSONObject ,而不是一个集合或者数组呀,那不就应该显示一个么,这应该是一个 JSONArray ,然后循环往JSONArray里边放值,再把这个 JSONArray 放进json里边

img

不知道你这个问题是否已经解决, 如果还没有解决的话:
  • 帮你找了个相似的问题, 你可以看下: https://ask.csdn.net/questions/164900
  • 除此之外, 这篇博客: 数据库查询返回JsonArray中的 sql查询生成JsonArray 部分也许能够解决你的问题, 你可以仔细阅读以下内容或者直接跳转源博客中阅读:

    获取sql查询数据库返回数据,将属性名作为key,将对应的属性值作为key,利用每一个元组生成一个JSONObject,将JSONobject加入JSONArray,打包输出。

    /**
         * 连接属性
         */
        private static Connection conn=null;
    
    
        public  static JSONArray query_sql(String sql){
    
            PreparedStatement pre =null;
            ResultSet rs = null;
            conn=(Connection) JdbcUtils.getConnection();
    
            //新建JsonArray
            JSONArray json_array=new JSONArray();
    
            try {
                pre=conn.prepareStatement(sql);
                rs=pre.executeQuery();
    
                ResultSetMetaData data=rs.getMetaData();
    
    
                while(rs.next()){
                    JSONObject json_object=new JSONObject();
                    for(int i=1;i<=data.getColumnCount();++i){
                        //列名
                        String columnName=data.getColumnName(i);
                        String rst=rs.getString(i);
                        json_object.put(columnName, rst);
                    }
                    json_array.put(json_object);
                }
    //          System.out.println(json_array.toString());
    
            } catch (SQLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return json_array;
        }

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^