Java JSONArray Object возвращает формат HTML? - PullRequest
0 голосов
/ 06 июля 2018

Я использую Java Spring и пытаюсь вернуть объект JSON в формате json. Однако мой контроллер ниже возвращает забавный формат HTML для данных JSON, см. Ниже. Я хочу, чтобы контроллер возвращал данные как данные в формате 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 голосов
/ 06 июля 2018
@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 аннотацию

попробуйте это.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...