我有一个使用Ebean和Play Framework的AngularJS应用程序。我正在使用Java 7.我在服务器上有一个Java对象,它应该在从数据库中获取后发送到客户端。它是一个RESTful服务,对象在Json中发送。我为这个对象添加了一个新字段,它本身就是一个对象。我希望这个字段被序列化并发送到客户端,但它没有被发送。是否有任何注释或其他任何我可以做到的字段发送到客户端?我想发送的字段是呼叫服务,它是一个Resource对象。
public Class DVMOrderItem extends OrderItem {
private static final long serialVersionUID = -2757166118137807642L;
@OneToOne(mappedBy = "discoOrderItem")
protected Resource service;
/** getters and setters available */
答案 0 :(得分:0)
您应该尝试为此字段创建序列化程序
首先在字段上方添加注释:
@JsonSerialize(using=MyJsonSerializer.class)
然后创建你的json序列化器类:
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
public class MyJsonSerializer extends JsonSerializer<Customer>
{
@Override
public void serialize(Customer comp, JsonGenerator gen, SerializerProvider provider)throws IOException, JsonProcessingException
{
//This is how to create a json object with jackson
gen.writeStartObject();
gen.writeObjectField("idCustomer", myValue1);
gen.writeObjectField("name", myValue2);
gen.writeEndObject();
}
}
每次要序列化字段时,都会调用MyJsonSerializer类。