簡體   English   中英

將json轉換為字符串java play框架列表時出錯

[英]Error on converting json to list of strings java play framework

我試圖將一個json文件轉換為字符串列表,但它正在拋出expected -> error

我已經嘗試過TypeReference<List<String>> List<String>但每次都會拋出不同的錯誤。 查看第28行的錯誤位置。

錯誤信息:

[error] /home/willroy/Code/playframework/database/app/controllers/HomeController.java:28:1: - > expected [error] return mapper.readValue(new File(“/ tmp / notes.json”),列表(){}); [錯誤](編譯/ compileIncremental)javac返回非零退出代碼[錯誤]總時間:0秒,完成12-Jun-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。

您必須在第二個參數中指定Class,

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

只需使用以下示例更改您的代碼:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM