无法以此格式构造JSON响应

时间:2011-07-05 07:09:17

标签: java json

我需要以这种格式构建JSON响应

{
   label : "name",
   items : [
       {name : "Name1"},
       {name : "Name2"}
   ]
}

我的Servlet程序内部使用了这种方式

List list = new ArrayList();

        for (int i = 0; i <= 10; i++) {
            list.add("Test");
        }

        JSONObject json = new JSONObject();
        json.put("label", "name");
        json.put("items", list.toArray());

        response.getWriter().write(json.toString());

使用这种格式,当我检查Firebug时,响应是这样的:

{"label":"name","items":["Test","Test","Test","Test","Test","Test","Test","Test","Test","Test","Test"]}

请告诉我如何以这种格式构建。

2 个答案:

答案 0 :(得分:1)

您必须在Array中创建对象。这应该有效:

List list = new ArrayList();

for (int i = 0; i <= 10; i++) {
    JSONObject nextObject = new JSONObject();
    nextObject.put("name", "Name" + i);
    list.add(nextObject);
}

JSONObject json = new JSONObject();
json.put("label", "name");
json.put("items", list.toArray());

response.getWriter().write(json.toString());

答案 1 :(得分:0)

我想要的一件事是,你想要的json数据是一个数据结构,我们需要将json对象放到列表中,然后将列表放到json对象referance中。 I think this link will help you.