Бесконечный цикл при отправке JSON методом response.getWriter().write(JSON);

166
28 апреля 2018, 17:43

Пытаюсь отправить из сервлета данные в формате JSON в JavaScript методом response.getWriter().write(JSON), но попадаю в бесконечный цикл.

            String JSON = builder.toJson(Complete_map);
            response.setContentType("text/plain");
            response.getWriter().write(JSON);

Complete map - HashMap из строковых значений. Использую библиотеку GSON. Но что бы я туда не передал - всегда бесконечный цикл.

 function show_Value()
 {
function MapObject(name,value,mutter) {
    this.name= name;
    this.value = value;
    this.mutter = mutter;
}
$.ajax({
    url:'show_Registers',
    success : function(responseText) {
        var map = String.valueOf(responseText);
        var  p = JSON.stringify(map);
        $('#MyFuckingMap').text(p);
       setTimeout(500,show_Value());
    }
});
 }

Причем такая штука происходит только в Google Chrome, Opera и IE, данные в ajax, видимо не приходят.

Answer 1

Это потому что у вас объекты имеют циклическую циркулярность. Обратите внимание, что вы не можете сериализовать объекты с круговыми ссылками, поскольку это приведет к бесконечной рекурсии.

class BagOfPrimitives {
  private int value1 = 1;
  private String value2 = "abc";
  private transient int value3 = 3;
  BagOfPrimitives() {
    // no-args constructor
  }
}
(Serialization)
BagOfPrimitives obj = new BagOfPrimitives();
Gson gson = new Gson();
String json = gson.toJson(obj); 
==> json is {"value1":1,"value2":"abc"}
READ ALSO
Вставка компонента в html c сервера

Вставка компонента в html c сервера

С сервера приходит строка такого вида 'Description + pictures

137
Подргузка данных с Ajax

Подргузка данных с Ajax

Есть слайдер(прямоугольнички сверху - перелистывание),сейчас в нем, DOM дерево заполнено, я же хочу, чтобы при нажатии на next подргужались картинки...

187