使用Jackson的动态字段名称

时间:2017-06-07 17:08:01

标签: java json jackson

我对Jackson dynamic property names提出了类似的问题。 我需要根据var_name的值设置结果属性名称。 我可以在自定义序列化程序中执行什么操作来传递var_name?

@POST
public List<DataObject> search(){   
    List<DataObject> list = new ArrayList<DataObject>();
    //some iteration function
        //...
        list.add(new DataObject(variable_string, variable_object));   
        //...      
    return list;
}

发布电话:

variable_string

variable_object[{ "Name": "John", "Age": 69 }, { "Name": "Jane", "Gender": "Female", "DateTime": "2017-6-12T15:09:25" }] 由知识库查询结果定义 期望的json响应示例:

public class FeedPojo {
    int id;
    int businessId;
    int limitedAmount;
    int views;
    int likes;
    int partnerId;
    String photoUrl;
    String videoUrl;
    String type;
    String specialType;
    String name;
    String description;
    String start;
    String end;
    String countInfoType;
    String uuid;
    boolean isNew;
    boolean liked;
}

感谢。

1 个答案:

答案 0 :(得分:2)

对于您在问题中提到的情况,您可以使用Map<K, V>

@POST
public List<Map<String, String>> search() {   

    List<Map<String, String>> list = new ArrayList<>();
    Map<String, String> item;

    item = new HashMap<>();
    item.put("Name", "John");
    item.put("Age", "69");
    list.add(item);

    item = new HashMap<>();
    item.put("Jane", "John");
    item.put("Age", "96");
    list.add(item);

    return list;
}