2011-12-26 107 views
1

我在服务器端的JSON对象:从服务器请求JSON对象?

String jsonText = JSONValue.toJSONString(users); 

,我想将其发送给客户端的JavaScript函数中使用,该怎么做?

我正在使用JSF 2与Pure JavaScript没有其他库。

回答

1

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

<script>var users = #{bean.usersAsJson};</script> 

正确方式,但是,是对为此,请使用完整的JSON Web服务。 JSF是一个基于组件的MVC框架,而不是JSON Web服务。为此,Java EE堆栈提供了JAX-RS API。长答案简短:Servlet vs RESTful。最好结合jQuery或任何能够发送Ajax请求并基本上在一个oneliner中操纵HTML DOM树的JS框架。您只需要考虑到,当与JSF结合使用时,仅可用于纯粹演示

0

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

+0

请举个例子吗? – 2011-12-26 13:27:59

+0

如何从服务器提供正常的HTML页面? – Nicolas78 2011-12-26 13:29:48

+0

我正在使用JSF 2和JavaScript。 – 2011-12-26 13:31:50

2

在HTTP中,服务器不会向客户端发送任何内容。客户端使用请求请求某个资源,并且该响应包含该资源。

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

请参阅http://api.jquery.com/jQuery.getJSON/从JavaScript获取JSON字符串。服务器代码是如此简单

response.getWriter().print(jsonText); 
+0

参考或代码片段? – 2011-12-26 13:29:16

+0

但我只使用JavaScript,如何用普通JS完成该操作? – 2011-12-26 13:31:29

+0

阅读http://www.w3schools.com/ajax/default.asp和http://www.json.org/js.html。帮你一个忙,并使用像jQuery或Prototype这样的JavaScript库来处理所有的跨浏览器问题。本机AJAX是一个痛苦的屁股。 – 2011-12-26 13:36:44

0

我想你想说响应json字符串。 它可以通过jQuery函数getJSON来完成。 它会得到json字符串并解析它的inti散列,然后你必须处理它以满足你的需要。 API documentation

0

将您的json对象发送给响应,并在javascript中获取响应。 使用eval函数来评估json对象。

var jsonObject = eval('(' + request.responseText + ')'); 
相关问题