2012-07-03 187 views
0

我正在創建一個android應用程序,該應用程序在MSSQL數據庫中存儲「name」「緯度」「經度」等數據。通過JSON將Android應用程序連接到Java服務器

我打算將android應用連接到服務器,然後連接到mssql數據庫服務器。

我已經建立了Java-> MSSQL連接,並且可以讀寫數據而沒有問題。

現在我希望能夠在java服務器和android應用程序之間發送/接收這些對象。

我創建「file.json」,並將其存儲包含在Web服務器上:

{"name":"shopname","address":"123 fake street","type":"unknown", "notes":"service is really good."} 

,我能拉把這些數據與任何麻煩的對象。

我的問題是:

如何獲得Java服務器將這些數據有助於我的Android應用?我希望能夠使用:

URL objectGet = new URL("http://10.0.1.8/file.json"); 
    URLConnection yc = objectGet.openConnection(); 
    BufferedReader in = new BufferedReader(
      new InputStreamReader(
      yc.getInputStream())); 

然後

DataObject objs = gson.fromJson(in, DataObject.class); 

什麼是設置此功能的最佳方式?

+0

你有一個應用程序服務器(即tomcat或其他)你可以運行你的Java/MSSQL橋樑作爲一個servlet? _如果不是 - 數據有點靜態 - 即定期重新生成json是否可接受? – Jens

+0

不,我沒有安裝tomcat或其他服務器。我打算只使用一個Java應用程序。 數據根本不是靜態的。它基於android手機的GPS座標而變化。 但我打算定期重新生成json。 – NullPointer

回答

0

請參考我對這個職位的回答。 Why null value returns in json parsing in android?

這可能對您有所幫助。最好的辦法是:

  • 使用read()函數連接到服務器,從服務器
  • 獲取JSON字符串中使用GSON fromJson功能
+0

感謝您的回覆 我發現與使用GSON解析JSON數據回對象。我試圖弄清楚服務器端。 我該如何獲得一個java服務器來生成JSON數據並在http://javaserver.example.com/file.json上提供它? 如何從android服務器(名稱,緯度,經度)發送數據? 我開始想,或許我會更好地使用PHP作爲中間層,因爲它似乎更容易設置。 – NullPointer

+0

所以這是一個J2EE問題。無論如何,你創建了一個java servlet,並在doGet/doPost方法中創建了一個必要的JSON字符串,並將這個JSON字符串寫入響應的writer對象。參考這個鏈接來製作這樣一個[servlet](http://www.roseindia.net/tutorials/json/json-servlet-example.shtml)。也可以使用response.setContentType(「application/json」);將contenttype設置爲'application/json';'' – sunil

0

爲了解析讀取數據到你的對象實例測試你的應用程序,你可以承載您的開發機器上通過IIS或Apache的服務,然後通過

http://10.0.2.2/file.json 

10.0.2.2打你的服務器是特殊的別名主機廁所pback接口(即開發機器上127.0.0.1)

參見:Emulator Network Address Space官方文檔

相關問題