Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java游戏!toJson忽略某些方法_Json_Playframework 2.0 - Fatal编程技术网

Java游戏!toJson忽略某些方法

Java游戏!toJson忽略某些方法,json,playframework-2.0,Json,Playframework 2.0,是否可以使用toJsonobject序列化对象并让toJson解析器忽略某些方法 我们在用户类getSocial中有一个方法,它与Facebook集成有关,导致toJson解析失败。如果可能,我们希望它在序列化时忽略该方法 可以这样做吗?您只需迭代对象并将其重写为仅具有指定值的映射或列表 请注意,如果您使用Ebean选择对象,它将获取整个对象以及数据,这些数据不应作为密码或其他凭据获取。使用: 示例代码 import com.alibaba.fastjson.serializer.JSONSer

是否可以使用toJsonobject序列化对象并让toJson解析器忽略某些方法

我们在用户类getSocial中有一个方法,它与Facebook集成有关,导致toJson解析失败。如果可能,我们希望它在序列化时忽略该方法


可以这样做吗?

您只需迭代对象并将其重写为仅具有指定值的映射或列表

请注意,如果您使用Ebean选择对象,它将获取整个对象以及数据,这些数据不应作为密码或其他凭据获取。

使用:

示例代码

import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.PropertyFilter;
import com.alibaba.fastjson.serializer.SerializeWriter;

PropertyFilter filter = new PropertyFilter() {
    public boolean apply(Object source, String name, Object value) {
        return false;
    }
};

SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.getPropertyFilters().add(filter);

A a = new A();
serializer.write(a);

String text = out.toString();
Assert.assertEquals("{}", text);
性能过滤器

PropertyFilter filter = new PropertyFilter() {
    public boolean apply(Object source, String name, Object value) {
        if("name".equals(name)) {
            return true;
        }
        return false;
    }
};

SerializeWriter out = new SerializeWriter();
JSONSerializer serializer = new JSONSerializer(out);
serializer.getPropertyFilters().add(filter);

A a = new A();
a.setName("chennp2008");
serializer.write(a);

String text = out.toString();
Assert.assertEquals("{\"name\":\"chennp2008\"}", text);
ValueObject:

public static class A {
    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

谢谢,不过我最后还是用了@JsonIgnore。