gpt4 book ai didi

Java:读取 JSON 文件并将其公开在 REST 服务中

转载 作者:行者123 更新时间:2023-12-01 11:09:01 25 4
gpt4 key购买 nike

我是一名前端 Web 开发人员,试图了解更多有关后端的信息。目前我只想读取本地 JSON 文件并将其公开在 REST 服务中以供 AngularJS 解析(这有意义吗?)。我相信我已经正确设置了 servlet,但不确定我如何从 Java 角度处理这个问题。值得注意的是,我是一名 JavaScript 程序员。我正在尝试在两种方法之间做出决定。

类中包含以下方法

@Path("/")
public class JsonRESTService {
.....
}

第一种方法

@GET
@Path("/jsonService")
@Consumes("application/json")
@Produces("application/json")
public Response jsonREST(InputStream incomingData) {

StringBuilder jsonBuilder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new InputStreamReader(incomingData));
String line = null;
while((line = in.readLine()) != null) {
jsonBuilder.append(line);
}
} catch(Exception e) {
System.out.println("Error Parsing: - ");
}
System.out.println("Data Received: " + jsonBuilder.toString());

return Response.status(200).entity(jsonBuilder.toString()).build();
}

第二种方法:不确定要返回什么

@GET
@Path("/jsonService")
@Consumes("application/json")
@Produces("application/json")
public Response jsonREST(InputStream incomingData) {

JSONParser parser = new JSONParser();
try {
Object obj = parser.parse(new FileReader("C:/files/flat.json"));
JSONObject jsonObject = (JSONObject) obj;
} catch(Exception e) {
e.printStackTrace();
}
}

web.xml servlet 映射

<servlet-mapping>
<servlet-name>javax.ws.rs.core.Application</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>

所以这应该暴露给 http://localhost:8080/myapp/rest/jsonService 。我从教程中获得了一些代码,但似乎我想要一个返回 JSONObject 而不是 Response 的方法。那是对的吗?我是否走在正确的轨道上,或者是否有一个我还没有找到的很好的例子来说明我正在尝试做的事情?

最佳答案

有多种方法可以做到这一点。你可以在第二种方法中尝试一下这个方法

将返回类型更改为 String 并使用

JSONObject 的值作为 String 返回
return jsonObject.toString();

在客户端,Angular JS 服务 - 您可以通过以下方式将字符串转换为 JSON 对象

var obj = JSON.parse(text);

所以,现在 obj 是一个 JSON 对象,您可以使用它进行进一步处理。

关于Java:读取 JSON 文件并将其公开在 REST 服务中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32587844/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com