从服务器请求JSON对象

Request JSON object from server?

本文关键字:对象 JSON 请求 服务器      更新时间:2023-09-26

我有一个JSON对象在服务器端:

String jsonText = JSONValue.toJSONString(users);

,我想把它发送到客户端在javascript函数中使用,如何做到这一点?

我使用JSF 2与纯JavaScript,没有其他库。

在HTTP中,服务器不向客户端发送任何东西。客户端使用请求请求某些资源,响应包含该资源。

使JavaScript函数向服务器发送一个AJAX请求,并使服务器在响应中使用这个JSON字符串进行应答(通过将JSON字符串写入响应编写器)。

请参阅http://api.jquery.com/jQuery.getJSON/从JavaScript获取JSON字符串。服务器代码就像

一样简单
response.getWriter().print(jsonText);

最简单的方法是让JSF在同一视图中将JSON对象的字符串表示形式作为JS变量打印出来:

<script>var users = #{bean.usersAsJson};</script>
然而,正确的方法是使用一个完整的JSON web服务。JSF是基于组件的MVC框架,而不是JSON web服务。为此,Java EE堆栈提供了JAX-RS API。长话短说:Servlet vs RESTful。最好与jQuery或任何JS框架结合使用,这些框架能够发送Ajax请求并在基本的在线程序中操作HTML DOM树。您只需要考虑到,当与JSF结合使用时,这只能用于纯表示

浏览器必须请求它,即该字符串必须位于请求处理链的某个位置;将响应设置为该字符串,浏览器将接收它。

我想你想说响应json字符串。这可以通过jQuery函数getJSON来实现。它将获取json字符串并将其解析为散列,然后您必须根据需要处理它。API文档

发送json对象到响应并在javascript中获得响应。使用eval函数对json对象求值

var jsonObject = eval('(' + request.responseText + ')');