Java JSONArray对象返回HTML格式吗?

时间:2018-07-06 13:56:23

标签: java json spring controller

我正在使用Java Spring,并且试图返回json格式的JSON对象。但是,下面的控制器返回了一种有趣的JSON数据HTML格式,请参见下文。 我希望控制器将数据返回为JSON格式的数据,而不是XML ...

有什么想法吗? 谢谢, 皮特

返回的数据:

    <JSONArray><item><date><date>11</date><hours>15</hours><seconds>52</seconds> 
   <month>11</month><nanos>0</nanos><timezoneOffset>300</timezoneOffset> 
   <year>117</year><minutes>32</minutes><time>1513024372000</time><day>1</day> 
   </date><exception></exception><level>DEBUG</level> 
   <logger>com.foo.bar.webapp.controller.ReconcileController</logger><id>91</id> 
   <message>filter was empty</message></item><item><date><date>11</date> 
   <hours>15</hours><seconds>52</seconds><month>11</month><nanos>0</nanos> 
   <timezoneOffset>300</timezoneOffset><year>117</year><minutes>32</minutes> 
   <time>1513024372000</time><day>1</day></date><exception></exception> 
   <level>DEBUG</level><logger>com.foo.bar.webapp.controller.ReconcileController
   </logger><id>92</id><message>returning labels as string</message> 
   </item><item><date><date>11</date><hours>15</hours><seconds>52</seconds> 
   <month>11</month><nanos>0</nanos><timezoneOffset>300</timezoneOffset> 
   <year>117</year><minutes>32</minutes><time>1513024372000</time><day>1</day> 
   </date><exception></exception><level>DEBUG</level> 
   <logger>com.foo.bar.webapp.controller.ReconcileController...

控制器方法:

@RequestMapping("/data*")
@Produces("application/json")
@ResponseBody
public JSONArray getData() {

    List<LogEntry> logs = logEntryManager.getLogsByDate( new Date() );

    JsonConfig config = new JsonConfig();
    config.addIgnoreFieldAnnotation(com.fasterxml.jackson.annotation.JsonIgnore.class);

    Log.trace("Get LogEntry Data Only");
    JSONArray jsonArray = JSONArray.fromObject( logs, config );

    return jsonArray;
}

1 个答案:

答案 0 :(得分:0)

@RequestMapping(value = "data", method = RequestMethod.POST, produces=MediaType.APPLICATION_JSON) // import javax.ws.rs.core.MediaType
public @ResponseBody JSONArray getData() {

    List<LogEntry> logs = logEntryManager.getLogsByDate( new Date() );

    JsonConfig config = new JsonConfig();
    config.addIgnoreFieldAnnotation(com.fasterxml.jackson.annotation.JsonIgnore.class);

    Log.trace("Get LogEntry Data Only");
    JSONArray jsonArray = JSONArray.fromObject( logs, config );

    return jsonArray;
}

忽略您的@Produces批注

尝试一下。