【问题标题】:Jackson annotation to convert map data's into JSON valuesJackson 注释将地图数据转换为 JSON 值
【发布时间】:2021-06-02 17:47:01
【问题描述】:

我正在学习 Jackson 库,并尝试使用地图数据将其转换为 JSON,但我的 json 数据中出现等号

 Map<Integer,String> map=new HashMap();
 map.put(id++, "a_set.jsp?action=start");
 map.put(id++, "password_change.jsp?action=edit");
 map.put(id++, "logging.jsp?action=start");
 map.put(id++, "about.jsp");
 writeJson(map,resp);

而writeJson方法是

@JsonAnyGetter
private void writeJson(Object object, HttpServletResponse response) {
    try {
        response.getWriter().write(object.toString());
    } catch (IOException ex) {
            ProTrace.exception( CLASS_NAME + "Could not write to response", ex);

    }
}

输出是:

{
0=a_webuihost_set.jsp?action=start,
1=password_change.jsp?action=edit,
2=logging.jsp?action=start,
3=about.jsp

}

为什么我在这里得到等号?

【问题讨论】:

    标签: java json jackson


    【解决方案1】:

    您看到的不是JSON,而是Map 对象的toString 表示。 您需要使用JSON 序列化库将POJO 序列化为JSON 有效负载。你可以使用JacksonObjectMapper

    private void writeJson(Object object, HttpServletResponse response) {
        final ObjectMapper mapper = new ObjectMapper();
        try {
            mapper.writeValue(response.getWriter(), object);
        } catch (IOException ex) {
            
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-08
      • 1970-01-01
      相关资源
      最近更新 更多