Пытаюсь отправить из сервлета данные в формате 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, видимо не приходят.
Это потому что у вас объекты имеют циклическую циркулярность. Обратите внимание, что вы не можете сериализовать объекты с круговыми ссылками, поскольку это приведет к бесконечной рекурсии.
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"}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей