我正在像这样用Gson序列化对象列表:
String responseMessage = new Gson().toJson(pages.get(pagenumber));
我想添加另一个要在javascript中读取的属性,但这与列表无关:
{"numberofpages":x}
我尝试过:
JsonElement responsemessage = new Gson().toJsonTree(pages.get(pagenumber));
JsonObject message = (JsonObject) responsemessage;
message.addProperty("numberofpages",numberofpages);
...但是我不能,因为responsemessage
是一个JSONArray。如何在responseMessage
的String版本中编码更多信息,以便在javascript中阅读:
$.get("/lod1/Data",{pagenumber: page},function(list){
console.log(list);
//???
//if(list.numberofpages == 5){
// }
$.each(list,function(index,card){
$("#questionsforsets").append('<tr><td class="questioncell"><div class="longtexttd">'+card.card+'</div></td><td>'+card.category+'</td><td>'+card.made+'</td><td>'+card.missed+'</td></tr>');
});
},"json");
答案 0 :(得分:1)
好吧,您发现您无法将属性添加到JSON数组。
如果responsemessage
是一个数组,并且需要将另一个值与之一起传递,则应将此数组和该值放入一个新对象中。这样的事情应该起作用:
JsonObject responseObject = new JsonObject();
responseObject.addProperty("pages", responsemessage);
responseObject.addProperty("numOfPages", numberOfPages);
(当然,需要相应地调整处理此响应的JS代码)