求解答!
查询结果是4条数据,我放到ArrayList中
然后我下个查询方法中的条件是 ArrayList中 4条数, 我该怎么操作
应该是有4个decorations数组,现在只赋值了一个,能看出来是没有循环.
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里边
获取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;
}