[英]Error on converting json to list of strings java play framework
I am trying to convert a json file to a list of strings, but it is throwing expected -> error
我试图将一个json文件转换为字符串列表,但它正在抛出expected -> error
I've already tried TypeReference<List<String>> List<String>
but it throws a different error each time. 我已经尝试过TypeReference<List<String>> List<String>
但每次都会抛出不同的错误。 Look at line 28 for the error location. 查看第28行的错误位置。
Error Message: 错误信息:
[error] /home/willroy/Code/playframework/database/app/controllers/HomeController.java:28:1: -> expected [error] return mapper.readValue(new File("/tmp/notes.json"), List(){}); [error] /home/willroy/Code/playframework/database/app/controllers/HomeController.java:28:1: - > expected [error] return mapper.readValue(new File(“/ tmp / notes.json”),列表(){}); [error] (Compile / compileIncremental) javac returned non-zero exit code [error] Total time: 0 s, completed 12-Jun-2019 11:05:01 [错误](编译/ 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());
}
}
SOLVED: 解决了:
Did not import enough at the top of the file (File, List, etc...) XD. 没有在文件顶部(文件,列表等)导入足够的XD。
您必须在第二个参数中指定Class,
return mapper.readValue(new File("/tmp/notes.json"), new TypeReference<List<String>>(){});
Just change your code by using this example below : 只需使用以下示例更改您的代码:
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.