Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.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,我需要序列化以下类: @JsonSerialize(using = ItemSerializer.class) public class Project { @JsonProperty public Map<String, Field> fields = new HashMap<String, Field>(); } 序列化函数: @Override public void serialize(...) throws ... { jgen.wr

我需要序列化以下类:

@JsonSerialize(using = ItemSerializer.class)
public class Project {
    @JsonProperty
    public Map<String, Field> fields = new HashMap<String, Field>();
} 
序列化函数:

@Override
public void serialize(...) throws ... {
    jgen.writeStartObject();       
    for(Map.Entry<String, Field> entry : value.fields.entrySet()){
        if(entry.getValue().isStringField){
            jgen.writeStringField(entry.getKey(), entry.getValue().name);
        }else{
            jgen.writeObjectField(entry.getKey(), entry.getValue());
        }
    }
    jgen.writeEndObject();
除了名为fileds(项目类中的变量名)的父元素不在此JSON中。如何将其添加到结果JSON中以获得类似以下内容:

{
    "fields": {
        "fieldValue4": {
        "name": "field4"
        },
        "fieldValue3": {
        "name": "field3"
        },
        "fieldValue2": {
        "name": "field2"
        },
        "fieldValue1": "field1"
     }
}

既然您已经指定了自己的自定义序列化程序,那么只需指定
gen.writeObjectFieldStart(“字段”)
,在序列化
字段之前
映射

,那么您是否可以将这些答案标记为解决方案?
{
   "fieldValue4": {
   "name": "field4"
  },
   "fieldValue3": {
   "name": "field3"
  },
   "fieldValue2": {
   "name": "field2"
  },
  "fieldValue1": "field1"
}
{
    "fields": {
        "fieldValue4": {
        "name": "field4"
        },
        "fieldValue3": {
        "name": "field3"
        },
        "fieldValue2": {
        "name": "field2"
        },
        "fieldValue1": "field1"
     }
}