如何在Java(服务器端)的JSONArray中对JSONObjects进行排序?

时间:2011-12-06 14:30:06

标签: java json

@GET
  @Produces("application/json")
  @Consumes("application/json")
  @Path("/getStuff/{id}")
  public String getStuff(
      @PathParam("id") String id,
      @Context HttpServletRequest request,
      @Context HttpServletResponse response) throws Exception
  {
      Collection<Stuff> stuff = Manager.getStuff().values();
      JSONArray jArray = new JSONArray();    
      for (Stuff i : stuff)
      {          
        jsnObjct.put("id", i.getId());
        jsnObjct.put("name", i.getName());
        jArray.add(jsnObjct);
      }
      json = jArray.toString();
      response.setContentType("text/javascript");
      response.getOutputStream().print(json);
      response.flushBuffer();  
      return null;
  }

1 个答案:

答案 0 :(得分:2)

我猜你正在使用net.sf.json库吗?如果是这样,我会尝试类似下面的内容。我不确定这是否可行,但如果确实有效,那将是迄今为止最简单的方法。不幸的是我不太熟悉那个库所以我不确定具体的细节(你可以跳过第二个JSONArray的创建 - 不确定add(int,Object)是否将对象向下推或覆盖它们) :

Object[] myArray = jArray.toArray();
myArray = Arrays.sort(myArray);
JSONArray sortedJArray = new JSONArray();
for (Object obj : myArray) {
  sortedJArray.add(obj);
}