首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSONArray被改写了

JSONArray被改写了
EN

Stack Overflow用户
提问于 2014-06-25 05:46:43
回答 1查看 98关注 0票数 0

我使用简简单单

我正在尝试为jqgrid创建JSON对象。数据被添加,但是正确,但是第二条记录被覆盖。

代码语言:javascript
复制
 ArrayList resList = connect.statement_query(sql, para);

            jsonObject = new JSONObject();

            jsonObject.put("total", resList.size()/para.length);
            jsonObject.put("page", 1);
            jsonObject.put("records", resList.size()/para.length);

            JSONArray cellArray = new JSONArray();
            JSONArray cell = new JSONArray();
            JSONObject cellObj = new JSONObject();

            for (int i = 0; i < resList.size(); i += para.length) {
                cellObj.put("id", resList.get(i));

                JSONArray temp=new JSONArray();
                temp.add(resList.get(i));
                temp.add(resList.get(i + 1));
                temp.add(resList.get(i + 2));
                temp.add(resList.get(i + 3));
                temp.add(resList.get(i + 4));

                cell=temp;
                cellObj.put("cell", cell);
                System.out.println("Cell Obj: "+cellObj.toJSONString());
                cellArray.add(cellObj);
                System.out.println("Cell Array: "+cellArray.toJSONString());
                //cellObj.clear();
                temp.clear();
            }
            System.out.println("Cell Array-Out: "+cellArray);
            jsonObject.put("rows", cellArray);

结果如下:

代码语言:javascript
复制
Cell Obj: {"id":"1000","cell":["1000","BE6K","vshekhar","2014-06-02","N\/A"]}
Cell Array: [{"id":"1000","cell":["1000","BE6K","vshekhar","2014-06-02","N\/A"]}]
Cell Obj: {"id":"1001","cell":["1001","BOA","maahamad","2013-05-01","N\/A"]}
Cell Array: [{"id":"1001","cell":["1001","BOA","maahamad","2013-05-01","N\/A"]},{"id":"1001","cell":["1001","BOA","maahamad","2013-05-01","N\/A"]}]
Cell Array-Out: [{"id":"1001","cell":[]},{"id":"1001","cell":[]}]
  1. 为什么单元阵列在第二次记录中被覆盖,为什么它在循环的一侧变成空白?如何克服它?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-25 06:13:12

( 1)对于被书写的物体来说-

您需要在for循环中恢复cellObj。

对于(int = 0;i< resList.size();i += para.length) {

cellObj =新的JSONObject();

2)细胞变得空白-

您正在通过“temp.clear()”清除temp;Cell正在引用temp,而temp被清除,这就是您获得空白数据的原因。

您可以删除temp.clear()代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24401059

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档