2011-06-14 53 views
1

我正在從一個web應用程序接收來自iphone的數據,然後將其保存在數據庫中。 iphone發送的數據是json格式。我想解析這個json對象,並在我們的應用程序中創建一個具有相同屬性的對象。爲此,我正在使用fromJson(Reader json, Class<T> classOfT)函數。是否有可能在我的Web應用程序中創建一個json文件,然後將該文件用作Web應用程序的輸入,而不是一次又一次從iPhone應用程序發送數據。如果是,那麼我應該在哪裏創建該json文件,我應該如何訪問fromJson(Reader json, Class<T> classOfT)函數。
例如:我如何給fromJson提供json對象的路徑(Reader json,Class <T> classOfT)?

{ 
users:[{ 
    name: "name1", 
    email: "email1", 
    friends:[{ 
     name: "name2", 
     email: "email2", 
     friends:[{ 
      name: "name3", 
      email: "email3" 
     }, 
     { 
      name: "name4", 
      email: "email4" 
     }] 
    }] 
    }] 
} 

及其JSON對象iphone應用發送。我想在我的web應用程序中硬編碼這個對象,所以我不需要從iPhone應用程序一次又一次地發送它。我希望現在它更清楚。

在此先感謝

+0

對不起,問題還不太清楚。您是否試圖模擬來自iPhone的HTTP請求來測試您的Web應用程序? – Thilo 2011-06-14 10:44:02

+0

假設從分配給您的問題的標籤開始,您就在GAE/J上。在這種情況下,您應該使用GAE數據存儲來存儲數據,而不是文件。看看GAE java示例,特別是這個部分:http://code.google.com/intl/de-DE/appengine/docs/java/gettingstarted/usingdatastore.html – Stefan 2011-06-14 11:24:17

+0

感謝Stefan。我想我沒有更好地解釋我的問題。請看看這個:http://stackoverflow.com/questions/5314813/json-gson-fromjson-java-objects在這個問題的解決方案是使用這一行代碼:gson.fromJson(this.json,User.class );我想知道這是什麼this.json。它是一個json對象或什麼?如果它是一個硬編碼的json對象,那麼我們應該在哪裏創建該對象以使用this.json訪問它? – Piscean 2011-06-14 11:32:35

回答

1

你的問題是非常混亂。我猜它歸結爲以下幾點:

我怎樣才能得到一個文件的Reader包含在我的web應用?

如果文件被包含在公共web內容(那裏有你/WEB-INF文件夾,也就是等),那麼你需要使用ServletContext#getResourceAsStream()

String relativeWebPath = "/file.json"; 
InputStream input = getServletContext().getResourceAsStream(relativeWebPath); 
Reader reader = new InputStreamReader(input, "UTF-8"); 
// ... 
+0

感謝您的幫助BalusC – Piscean 2011-06-14 15:22:27