[英]Play Java, How to read a local JSON file and show as list on a body?
我开始学习Play Java,并发现了许多有关如何执行主题解释的示例(通常没有导入等)。 我正在使用Play 2.5和JDK 8,并配置了自己的控制器。 该文件位于我可以从控制器Java类访问的目录中,但我不清楚通过杰克逊读取JSON文件的最佳实践是什么。 或java.io. *函数? 是否可以从专家那里获得最少的工作样本? 我尝试按照本指南进行操作,但是代码始终出错(示例代码都没有最后的逗号!): https : //www.playframework.com/documentation/2.5.x/JavaJsonActions
基本上我的json items.json在..workspace \\ play-java \\ app \\ data \\ items.json下。
JSON文件是这样的:[{“ id”:10000000,“ name”:“ name1”,“ starttime”:“ 2015-06-18T06:26:56-07:00”,“ endtime”:“ 2015 -07-08T12:47:16-07:00“}等]
我想在读取文件的函数中,我需要指定路径“ app / data / items.json”或“ data / items.json”
提前致谢!
如果要向客户端传递JSON,则可以使用Json
类将输入流(或字符串)转换为JsonNode
并将其直接传递回响应中。 由于您使用的是JsonNode
,因此将自动设置响应的内容类型。
(对于此示例,我在/conf
创建了一个名为foo.json
的文件。)
package controllers;
import java.io.IOException;
import java.io.InputStream;
import javax.inject.Inject;
import com.fasterxml.jackson.databind.JsonNode;
import play.Environment;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Result;
public class SomeController extends Controller {
private final Environment env;
@Inject
public SomeController(final Environment env) {
// the environment is used to access local files
this.env = env;
}
public Result index() {
try (InputStream is = env.resourceAsStream("/foo.json")) {
final JsonNode json = Json.parse(is);
return ok(json);
} catch (IOException e) {
return internalServerError("Something went wrong");
}
}
}
我用以下基本代码自己解决了:
package controllers;
import com.fasterxml.jackson.databind.JsonNode;
import play.Environment;
import play.libs.Json;
import play.mvc.Controller;
import play.mvc.Result;
import javax.inject.Inject;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
public class CustomersController extends Controller {
private final Environment env;
@Inject
public CustomersController(final Environment env) {
// the environment is used to access local files
this.env = env;
}
public Result index() {
File file = new File("absolute path/items.json");
try (
FileInputStream is =new FileInputStream(file);
){
final JsonNode json = Json.parse(is);
return ok(json);
} catch(IOException e){
return internalServerError("Something went wrong");
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.