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 使用Jackson为列表定制JSON序列化_Java_Json_Serialization_Jackson - Fatal编程技术网

Java 使用Jackson为列表定制JSON序列化

Java 使用Jackson为列表定制JSON序列化,java,json,serialization,jackson,Java,Json,Serialization,Jackson,MyClass如下所示: @Getter class MyClass { private final DateTime start; private final DateTime end; } 我想用Jackson将列表序列化为JSON,但格式与预期不符。我目前正在挖掘杰克逊的文档,但第一次阅读时有点棘手 JSON输出现在是: [ { "end" : "2012-02-16T13:59:59.000+01:00", "start" : "2012-02-16T13:

MyClass如下所示:

@Getter
class MyClass
{
    private final DateTime start;
    private final DateTime end;
}
我想用Jackson将列表序列化为JSON,但格式与预期不符。我目前正在挖掘杰克逊的文档,但第一次阅读时有点棘手

JSON输出现在是:

[ {
   "end" : "2012-02-16T13:59:59.000+01:00",
   "start" : "2012-02-16T13:35:42.000+01:00"
 }, {
   "end" : "2012-02-16T16:59:59.000+01:00",
   "start" : "2012-02-16T16:00:00.000+01:00"
 } ]
但我希望它是:

[ [ "2012-02-16T13:59:59.000+01:00", "2012-02-16T13:35:42.000+01:00"],
[ "2012-02-16T16:59:59.000+01:00", "2012-02-16T16:00:00.000+01:00" ] ]
因此,不要打印成员名称并将内部{}替换为[]。

@JsonValue注释是您需要的:

这告诉Jackson在序列化为JSON时应该如何处理MyClass。

@JsonValue注释是您需要的:


这告诉Jackson在序列化为JSON时应该如何处理MyClass。

为什么不简单地序列化一个DateTime数组,并在客户端成对地获取它们?如果您不想在JSON输出中包含属性,那么不要序列化MyClass为什么不简单地序列化一个DateTime数组并在客户端成对地获取它们?如果不希望JSON输出中包含属性,请不要序列化MyClass
class MyClass {
    ...
    @JsonValue
    private DateTime[] toValue() {
        return new DateTime[] {start, end};
    }
}