Поскольку у вас нет данных в таблице директора, вы не можете выполнить запись в таблицу фильмов (из-за ссылки на внешний ключ), поэтому сначала введите некоторые данные в таблицу директора, затем введите данные в таблицу фильмов
[112 ] Подробнее см. По этой ссылке Оператор INSERT конфликтует с ограничением FOREIGN KEY - SQL Server
Посмотрите на типы наложения GWT . Я думаю, что это самый простой способ работы с JSON в GWT. Вот пример измененного кода из связанной статьи:
public class Customer extends JavaScriptObject {
public final native String getFirstName() /*-{
return this.first_name;
}-*/;
public final native void setFirstName(String value) /*-{
this.first_name = value;
}-*/;
public final native String getLastName() /*-{
return this.last_name;
}-*/;
public final native void setLastName(String value) /*-{
this.last_name = value;
}-*/;
}
После того, как вы определили тип наложения, можно легко создать объект JavaScript из JSON и получить доступ к его свойствам в Java:
public static final native Customer buildCustomer(String json) /*-{
return eval('(' + json + ')');
}-*/;
Если вы хотите снова получить представление объекта в формате JSON , Вы можете обернуть тип наложения в JSONObject:
Customer customer = buildCustomer("{'Bart', 'Simpson'}");
customer.setFirstName("Lisa");
// Displays {"first_name":"Lisa","last_name":"Simpson"}
Window.alert(new JSONObject(customer).toString());
Не уверенный, если Jackson работал бы на Вас. Я не знаю, GWT-конкретно ли там, Вы ищете; если не это должно работать.
Но его сериализация/десериализация работает вполне хорошо, как:
// read json, create object
ObjectMapper mapper = new ObjectMapper();
MyBean bean = mapper.readValue(jsonAsString, MyBean.class);
// and write out
StringWriter sw = new StringWriter();
mapper.writeValue(sw, user);
String jsonOut = sw.toString();
Вам действительно нужны средства доступа (getX()
сериализировать, setX()
десериализовывать; может аннотировать методы другими именами), но это об этом.
Хорошо, я удалил свой предыдущий ответ, потому что это оказалось точно, что Вы не хотели.
Я не знаю, как хорошо это работает с GWT, но мы пользуемся библиотекой json-lib для сериализации объектов в нормальном проекте Java, где я работаю.
Это может создать JSONObject непосредственно из JavaBean, затем использовать toString получающегося JSONOBJECT () метод для возвращения фактической строки JSON.
Аналогично, это может также возвратить JSON в JavaBean.
Кажется, что я нашел правильный ответ на свой вопрос
Я выяснил, что боб к json и json к бобовому преобразованию в GWT не является тривиальной задачей. Известные библиотеки не работали бы, потому что GWT потребует их полного исходного кода, и этот исходный код должен использовать только классы Java, которые являются среди эмулированного GWT. Кроме того, Вы не можете использовать отражение в GWT. Очень жесткие требования!
Я нашел единственное существующее решение названным gwt-jsonizer. Это использует пользовательский класс Генератора и требует интерфейса подстанции для каждого "jsonable" боба. К сожалению, это не работает, не исправляя над последней версией GWT и не обновлялось в течение долгого времени.
Так, я лично решил, что это более дешево и быстрее для создания моих бобов khow, как преобразовать себя в и от json. Как это:
public class SmartBean {
private String name;
public String getName() { return name; }
public void setName(String value) { name = value; }
public JSONObject toJson() {
JSONObject result = new JSONObject();
result.put("name", new JSONString(this.name));
return result;
}
public void fromJson(JSONObject value) {
this.name = value.get("name").isString().stringValue();
}
}
JSONxxxx
встроенные классы GWT, которые обеспечивают низкий уровень json поддержка.
Я, кажется, отвечаю на этот вопрос много...
Существует страница на code.google.com, названном Используя GWT для Мэшапов JSON. Это - (к сожалению), путь по моей голове, поскольку я не настолько знаком с GWT, таким образом, это не может быть полезно.
В приложениях Google Web Toolkit на страницах с 510 по 522 автор Райан Дьюсбери показывает, как использовать генерацию кода GWT для сериализации в документы XML и JSON и из них.
Вы можете скачать код здесь ; вам нужны пакеты кода главы 10, а затем вы хотите заглянуть в пакет src / com / gwtapps / serialization. Я не видел лицензии на этот код, но отправил автору письмо, чтобы узнать, что он говорит. Я обновлю это, если он ответит.
Проблемы с этим решением:
Итак, это не готовое решение, а отличная отправная точка для создания сериализатора JSON, совместимого с GWT. Объедините это с сериализатором JSON на стороне сервера, например json-lib , и все готово.
Я также нашел этот проект (опять же, некоторый интерфейс маркеров требуется).
Проверьте это:
GWT Professional JSON Serializer: http://code.google.com/p/gwtprojsonserializer /
! Работает с GWT 2.0+!
Самый простой способ - использовать встроенный в GWT JSON API. Вот документация . А вот отличный учебник о том, как его использовать.
Это очень просто:
String json = //json string
JSONValue value = JSONParser.parse(json);
API JSONValue довольно крутой. Он позволяет связывать проверки при извлечении значений из объекта JSON, чтобы исключения возникали, если что-то не так с форматом.