簡體   English   中英

GWT:使用相同的api在客戶端和服務器端進行JSON解析

[英]GWT : JSON Parsing in client side and server side with same api

我們使用org.json api在服務器端解析json,並使用GWT JsonParser在客戶端解析JSON。 有沒有可以在客戶端和服務器端都可以使用的api?

您正在尋找GWT AutoBean: http : //code.google.com/p/google-web-toolkit/wiki/AutoBean

使用AutoBeans,您可以通過juset定義JSON的結構,然后由GWT編譯器處理其余部分。

與使用autobeans或GWT-RCP相比,我正在編寫此代碼-如果您在服務器上使用Java。 特別是,如果不是這樣的話。

最干凈的方法是REST-RPC / JPA,您可以在其中在客戶端,服務器和持久性數據庫之間共享一組POJOS。 讓我代表這種技術組合來吹噓-一組單獨的POJO,而不是三個,在三個方面之間沒有任何(或最少的)轉換。

您不必編寫任何數據轉換例程。 或至少由於序列化約束或由於您試圖將GWT和REST與呈現高度不可序列化性的現有架構進行接口而導致的數據轉換數量最少。

同樣,類似於GWT-RPC,在客戶端和服務器端共享一組Java RPC方法。 好吧,幾乎相同的方法集。 除了服務器端的返回類型成為客戶端上的回調通用參數。

技術組合為:

  • JAX-RS(服務器端的Resteasy或Jersey)
  • 客戶端上的JAX-RS + GWT = RestyGWT
  • 服務器端的JPA
  • GWT客戶端和服務器端都通過JAX-RS進行JAXB。
  • 服務器端的Jackson JSON處理器。

REST-RPC令人信服的原因是

  • 您可以假裝將客戶端與服務器之間的對話編寫為GWT-RPC。 服務接口和回調態度是相同的。
  • 客戶端和服務器之間的數據交換采用JSON。
  • 這意味着在成功設置應用程序之后,您可以使用瀏覽器而不是GWT客戶端與服務器對話。 或jQuery。 或PHP或Python作為服務器。
  • 無需自己弄亂JSON或XML編碼/解碼-僅在POJO中處理,而僅在POJO中處理。
  • 您可以使用瀏覽器來調試獨立於GWT客戶端的Web服務。

REST的態度是(除了獨立於狀態的請求外)是稱為Web API的概念。 可能像Javadoc這樣的API-但用JSON或XML表示。 關於此API的妙處是-您不必生成文檔。 像javadoc一樣,您可以在服務接口上運行Enunciate。

您可以在以下(三部分)博客文章中關注我的討論: http : //h2g2java.blessedgeek.com/2012/07/gwt-with-jax-rs-and-jpa-part-3.html

暫無
暫無

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

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