добавить свойство в массив Json с помощью Gson - PullRequest
0 голосов
/ 14 октября 2018

Я сериализую список объектов с помощью 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 для чтения в 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 голосов
/ 15 октября 2018

Ну, как вы узнали, вы не можете добавить свойство в массив JSON.

Если ваш responsemessage является массивом, и вам необходимо передать другое значение вместе с ним, вы должны поместить этот массив и это значение в новый объект.Примерно так должно работать:

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

(конечно, ваш JS-код, обрабатывающий этот ответ, должен быть соответствующим образом скорректирован)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...