Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/314.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 标准类是否可以有自定义的Jackson序列化程序?(例如列表<;列表<;字符串>;)_Java_Jackson - Fatal编程技术网

Java 标准类是否可以有自定义的Jackson序列化程序?(例如列表<;列表<;字符串>;)

Java 标准类是否可以有自定义的Jackson序列化程序?(例如列表<;列表<;字符串>;),java,jackson,Java,Jackson,我正在尝试为类a的实例变量创建自定义序列化程序 问题在于变量是“标准”内置类型(List) 我发现,理论上,您可以为要创建的类型创建自定义序列化程序;所以从理论上讲,如果我可以为列表创建一个自定义序列化程序,我就可以通过这种方式将它混合到类a中 但是如何为列表创建自定义序列化程序呢 我想可能是这样的。我不知道序列化时要使用的逻辑,所以我编写了简单的json数组[][] private static class ListListSerializer extends StdSerializer<

我正在尝试为类a的实例变量创建自定义序列化程序

问题在于变量是“标准”内置类型(
List

我发现,理论上,您可以为要创建的类型创建自定义序列化程序;所以从理论上讲,如果我可以为
列表创建一个自定义序列化程序,我就可以通过这种方式将它混合到类a中


但是如何为
列表
创建自定义序列化程序呢

我想可能是这样的。我不知道序列化时要使用的逻辑,所以我编写了简单的json数组[][]

private static class ListListSerializer extends StdSerializer<List<List<String>>>{
    protected ListListSerializer(Class<List<List<String>>> t) {
        super(t);
    }
    protected ListListSerializer(){
        this(null);
    }


    @Override
    public void serialize(List<List<String>> lists, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeStartArray();
        for (List<String> strings : lists) {
            jsonGenerator.writeStartArray();
            for (String string : strings) {
                jsonGenerator.writeString(string);
            }
            jsonGenerator.writeEndArray();
        }
        jsonGenerator.writeEndArray();
    }
}

这就是你想做的吗?

我想可能是这样的。我不知道序列化时要使用的逻辑,所以我编写了简单的json数组[][]

private static class ListListSerializer extends StdSerializer<List<List<String>>>{
    protected ListListSerializer(Class<List<List<String>>> t) {
        super(t);
    }
    protected ListListSerializer(){
        this(null);
    }


    @Override
    public void serialize(List<List<String>> lists, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeStartArray();
        for (List<String> strings : lists) {
            jsonGenerator.writeStartArray();
            for (String string : strings) {
                jsonGenerator.writeString(string);
            }
            jsonGenerator.writeEndArray();
        }
        jsonGenerator.writeEndArray();
    }
}

这就是您想要做的吗?

老实说,确切的序列化逻辑并不重要-我更困惑的是如何将序列化程序分配给内置类。不知何故,我没有意识到StdSerializer中的泛型不需要自定义类,可以接受任何类-现在我觉得很愚蠢:)没关系,我很高兴这有帮助:)确切的序列化逻辑并不重要,老实说-我更困惑于如何将序列化程序分配给内置类。不知何故,我没有意识到StdSerializer中的泛型不需要自定义类,可以接受任何类-现在我觉得很愚蠢:)没关系,我很高兴这有帮助:)
{"myStrings":[["a","b","c"],["d","f","g"]]}