如何将Java对象字段序列化并发送到客户端

时间:2014-08-27 12:15:36

标签: java json playframework

我有一个使用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 */

1 个答案:

答案 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类。