У меня есть модель, которая выглядит следующим образом (Play 2.1.1 Java ebean)Джексон сериализации и десериализации строковое свойство, как JSON
@Entity
public class Link extends Model {
@Id
public Long id;
@Lob
public String points;
}
, где точки является сырьевым JSON строка, содержащая х, у координаты в массиве ,
Я не хочу, чтобы десериализовать его в массив точек, потому что он будет использоваться только для пользовательского интерфейса. и, таким образом, я хотел бы сохранить его в текстовое поле в базе данных.
Я хочу, чтобы объекты свойств были сериализованы в виде массива json при отправке по проводу во внешний интерфейс, и я хочу, чтобы интерфейс мог отправлять массив json и снова введите его в строку.
В контроллере:
// Serialize
List<Link> links = Link.findAll();
return ok(Json.toJson(links));
// Deserialize
Link link = Json.fromJson(request().body().asJson(), Link.class);
Как мне это сделать?
Пользовательский сериализатор, десериализатор?
@JsonRawValue?
Любые другие аннотации?
Просто немного комментария: Вы можете отправить его в виде строки JSON, так же, как она есть, и он десериализация в ваш интерфейс очень легко использует JavaScript (или jQuery, например), если это ваш случай. Это соответствует вашим потребностям? Это всего лишь одна дополнительная строка кода в вашем клиенте ... – Azurlake
Я использую angular.js и ngResource, что означает, что я не выполняю запросы самостоятельно, поэтому я бы не стал прибегать к этому. но спасибо anyways :) –