Преобразовать оверлеи JavaScript обратно в JSON?

StackOverflow https://stackoverflow.com/questions/611768

  •  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.Или найдите другую библиотеку, их там буквально сотни.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top