Преобразовать оверлеи JavaScript обратно в JSON?
-
03-07-2019 - |
Вопрос
У меня возникли проблемы с преобразованием объекта из JSON в объект наложения JavaScript и обратно.Сейчас у меня в классе есть следующее:
public class Aff extends JavaScriptObject {
protected Aff() {};
public static native Aff fromJSONString(String jsonString) /*-{
return eval('(' + jsonString + ')');
}-*/;
public final native String toJSON() /*-{
return this.toString();
}-*/;
// followed by get/seters and a bunch of TODO.
}
Я умею создавать объекты и работать с ними, но obj.toJSON()
ВОЗВРАТ [object Object]
.Кажется, я не могу найти какой-либо способ обойти это, не выполнив ручное преобразование обратно в JSON.
Решение
это.toString();
на самом деле не создает json-код.Он выводит строковое представление объекта.Вам понадобится либо пользовательский код для записи json, либо, что еще лучше, используйте библиотеку.
Два способа использования библиотек - используйте встроенные в json библиотеки gwt.Не так приятно, но не нужно писать код jsni.Или добавьте ресурс сценария в свой модуль xml для библиотеки, такой как one библиотека javascript json здесь , и используйте это в jsni.Или найдите другую библиотеку, их там буквально сотни.