Ошибка при преобразовании json в список строк java play framework - PullRequest
0 голосов
/ 12 июня 2019

Я пытаюсь преобразовать файл JSON в список строк, но он выбрасывает expected -> error

Я уже пробовал TypeReference<List<String>> List<String>, но каждый раз выдает другую ошибку. Посмотрите на строку 28 для определения местоположения ошибки.

Сообщение об ошибке:

[ошибка] /home/willroy/Code/playframework/database/app/controllers/HomeController.java:28:1: -> ожидается [ошибка] return mapper.readValue (новый файл ("/ tmp / notes.json"), List () {}); [ошибка] (Compile / compileIncremental) javac вернул ненулевой код завершения [ошибка] Общее время: 0 с, завершено 12 июня 2019 г. 11: 05: 01

public class HomeController extends Controller {
  public Result get() {
    return ok("")
    WS.url("localhost:9000")
      .seteContentType("/")
      .post(getJson());
  } 

  public Result post(String text) { 
    List<String> noteJson = getJson();
    noteJson.append(text);
    return ok("");  
  }

  private List<String> getJson() {
    ObjectMapper mapper = new ObjectMapper();
    return mapper.readValue(new File("/tmp/notes.json"), List<String>(){});
  }    

  private void saveJson(List<String> noteJson) {
    FileWriter file = new FileWriter("/tmp/notes.json");
    file.write(notJson.toJSONString());
  } 

}

РЕШИТЬ:

Недостаточно импортировать в начало файла (Файл, Список и т. Д.) XD.

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Просто измените свой код, используя следующий пример:

private List<String> getJson() {
    List<String> texts = new ArrayList<String>();
    ObjectMapper mapper = new ObjectMapper();
    final JsonNode nodes = objectMapper.readTree(new File("/tmp/notes.json")).get("list");
    if (nodes.isArray()) {
        for (final JsonNode node : nodes) {
            texts.add(node.get("property").asText());
        }
    }
    return texts;
}
0 голосов
/ 12 июня 2019

Вы должны указать класс во втором аргументе,

return mapper.readValue(new File("/tmp/notes.json"), new TypeReference<List<String>>(){});
...