使用Gson向Json数组添加属性

时间:2018-10-14 20:22:54

标签: javascript json gson

我正在像这样用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");

1 个答案:

答案 0 :(得分:1)

好吧,您发现您无法将属性添加到JSON数组。

如果responsemessage是一个数组,并且需要将另一个值与之一起传递,则应将此数组和该值放入一个新对象中。这样的事情应该起作用:

JsonObject responseObject = new JsonObject();
responseObject.addProperty("pages", responsemessage);
responseObject.addProperty("numOfPages", numberOfPages);

(当然,需要相应地调整处理此响应的JS代码)