0

为什么在我的 JSON 数组中只是最后一个 json 元素?

这是我的代码:

@GET
@Path("inregistrareHarta")
@Produces(MediaType.APPLICATION_JSON)
public void getListPuncte(@QueryParam("idTransporturi") int idTransporturi) 
{
  PuncteDAO puncteInformation = new PuncteDAO();
  ArrayList<Puncte> puncteList = puncteInformation.getPuncte(idTransporturi);

  Gson gson = new Gson();
  JsonArray arrayObj=new JsonArray();
  for(int i=0;i<puncteList.size();i++)
  {
    Puncte puncte = puncteList.get(i);
    JsonElement puncteObj = gson.toJsonTree(puncte);   
    arrayObj.add(puncteObj);
  }
  JsonObject myObj = new JsonObject();
  myObj.add("puncteList", arrayObj);
  System.out.println(myObj.toString());
}

这是我得到的结果:

{"puncteList":
  [
    {"idPuncte":7,"idTransport":2,"latitudine":190.0,"longitudine":150.0,"descriere":"2_4"},
    {"idPuncte":7,"idTransport":2,"latitudine":190.0,"longitudine":150.0,"descriere":"2_4"},
    {"idPuncte":7,"idTransport":2,"latitudine":190.0,"longitudine":150.0,"descriere":"2_4"},
    {"idPuncte":7,"idTransport":2,"latitudine":190.0,"longitudine":150.0,"descriere":"2_4"}
  ]
}

这是我期待的结果:

{"puncteList":
  [ 
    {"idPuncte":4,"idTransport":2,"latitudine":19.0,"longitudine":0.0,"descriere": "‌2_1"}, 
    {"idPuncte":5,"idTransport":2,"latitudine":10.0,"longitudine": 50.0,"descriere":"‌2_2"}, 
    {"idPuncte":6,"idTransport":2,"latitudine":1.0,"longitudine":1.0,"descriere":"2_‌3"},
    {"idPuncte":7,"idTransport":2,"latitudine":30.0,"longitudine":50.0,"descriere":"‌2_4"}
  ]
}
4

1 回答 1

0

在您的预期输出中,结束 ] 可能是一个错字。

您的预期输出很简单,不是有效的 JSON 表达式。你可以有这个:

[
  "puncteList", 
  {"idPuncte":4,"idTransport":2,"latitudine":19.0,"longitudine":0.0,"descriere": "‌2_1"}, 
  {"idPuncte":5,"idTransport":2,"latitudine":10.0,"longitudine": 50.0,"descriere":"‌2_2"}, 
  {"idPuncte":6,"idTransport":2,"latitudine":1.0,"longitudine":1.0,"descriere":"2_‌3"},
  {"idPuncte":7,"idTransport":2,"latitudine":30.0,"longitudine":50.0,"descriere":"‌2_4"}
]

但是,如果“puncteList”是一个键,它必须有一个值:一个标量、一个数组或另一个对象。

于 2013-06-11T14:56:02.593 回答