java - 玩Java,如何读取本地JSON文件并在body上显示为列表?

标签 java json playframework playframework-2.5

我开始学习 Play Java,并发现了许多不同的示例(通常没有导入等),了解如何执行主题中所解释的操作。 我正在使用 Play 2.5 和 JDK 8,并配置了我自己的 Controller 。该文件位于我可以从 Controller Java 类访问的目录中,但我不清楚读取 JSON 文件的最佳实践是什么:通过 Jackson?或者 java.io.* 函数? 是否有可能从专家那里获得工作最小样本? 我尝试遵循本指南,但代码总是出错(示例代码也没有最后的逗号!): https://www.playframework.com/documentation/2.5.x/JavaJsonActions

基本上我的 json items.json 位于 ..workspace\play-java\app\data\items.json 下。

JSON 文件是这样的: [ { “id”:10000000, “姓名”:“姓名1”, "开始时间": "2015-06-18T06:26:56-07:00", “结束时间”:“2015-07-08T12:47:16-07:00” }, ETC。 ]

我想在读取文件的函数中我需要指定路径“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");
        }
    }
}

关于java - 玩Java,如何读取本地JSON文件并在body上显示为列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39266763/

相关文章:

c# - Json.NET 可以使用 Formatting 序列化流式传输吗?

c# - 为什么我的 API 在 XML 节点内返回一个 JSON?

java - PlayFramework 2.2 Java Action 组合

scala - Play : additional public/assets directory

java - 当常用操作较多时,类如何设计?

java - 简单的内存全文搜索解决方案

java - 如何更改文本颜色和填充颜色

java - 多对多表内的多对多

java - Spring 启动 : Customize API response based on the User Roles

playframework - Play Framework 处理部分形式