簡體   English   中英

從服務器請求JSON對象?

[英]Request JSON object from server?

我在服務器端有一個JSON對象:

String jsonText = JSONValue.toJSONString(users);

我想將它發送到客戶端以用於javascript函數,該怎么做?

我在沒有其他庫的情況下將JSF 2與Pure 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請求並基本上在oneliner中操作HTML DOM樹。 您只需要考慮將其與JSF結合使用時,只能用於純演示

瀏覽器必須請求它,即該字符串必須位於請求處理鏈中的某個位置。 將響應設置為該字符串,瀏覽器將收到它。

我想你想說響應json字符串。 可以通過jQuery函數getJSON完成。 它將獲取json字符串並將其解析為inti哈希,然后必須根據需要對其進行處理。 API文檔

發送您的json對象進行響應,並在javascript中獲取響應。 使用eval函數評估json對象。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM