2013-12-18 12 views
0

在我的JSP應用程序,我已經稱爲Web服務從我得到的JSON fromat數據像下面字符串匹配和JSP請與JSON格式的web服務數據

代碼用於獲取JSON數據是

String recv =""; 
String recvbuff =""; 
URL jsonpage = new URL("http://107.109.6.236:3000/api/tokens.json"); 
URLConnection urlcon = jsonpage.openConnection(); 
BufferedReader buffread = new BufferedReader(new InputStreamReader(urlcon.getInputStream())); 

while ((recv = buffread.readLine()) != null) 
recvbuff += recv; 
buffread.close(); 

下面是recvbuff輸出。

[{"id":1,"session_id":"11611fba0cd57f2f0e62acf746d7f60b","link":"","created_at":"2013- 12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"}, 
{"id":2,"session_id":"848960680b00502fc3e4c9cf0652a5fe","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"}, 
{"id":3,"session_id":"101155b2c4cef0034804ed9b6806422e","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"}, 
{"id":4,"session_id":"ec1373a7bdd291f60266ab6f8445c23b","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"}, 
{"id":5,"session_id":"3eb8b185f0cbd71ff004b30453c90f54","link":"","created_at":"2013-12-10T13:13:31.000Z","updated_at":"2013-12-10T13:13:31.000Z"}] 

,我有一個token_id3eb8b185f0cbd71ff004b30453c90f54將匹配與的一個SESSION_ID。如果不匹配確切的字符串,它將重定向到錯誤頁面。

爲此,我使用下面的代碼。

if(recvbuff.contains(token_id)){ 
out.println("<br>Hello <b>"+token_id+"</b>! done"); 
}else{ 
    response.sendRedirect(redirectURL); 
} 

如何獲得jsp頁面中的精確匹配?

+0

是'recvbuff'包含JSON字符串的字符串?或者它是解析JSON的JSON對象嗎?目前尚不清楚如何對對象recvbuff進行比較,因爲我們不知道該對象是什麼! –

+0

@DanTemple recvbuff是一個包含JSON字符串的字符串 – sukanta

+0

也許增加'recvbuff'的編碼方式會有所幫助。 聽起來好像它可以是JSON數組中所有對象的字符串,也可以是包含數組中單個json對象的字符串。在第一種情況下,如果token_id位於數組中的任何位置,則總是匹配。在第二種情況下,您需要遍歷數組並單獨檢查每個字符串。 –

回答

3

嘗試是這樣的(在scriplets作爲其寫JSP頁面):

String ar = "[{\"id\":1,\"session_id\":\"11611fba0cd57f2f0e62acf746d7f60b\",\"link\":\"\",\"created_at\":\"2013- 12-10T13:13:31.000Z\",\"updated_at\":\"2013-12-10T13:13:31.000Z\"}, \n" 
       + "{\"id\":2,\"session_id\":\"848960680b00502fc3e4c9cf0652a5fe\",\"link\":\"\",\"created_at\":\"2013-12-10T13:13:31.000Z\",\"updated_at\":\"2013-12-10T13:13:31.000Z\"},\n" 
       + "{\"id\":3,\"session_id\":\"101155b2c4cef0034804ed9b6806422e\",\"link\":\"\",\"created_at\":\"2013-12-10T13:13:31.000Z\",\"updated_at\":\"2013-12-10T13:13:31.000Z\"},\n" 
       + "{\"id\":4,\"session_id\":\"ec1373a7bdd291f60266ab6f8445c23b\",\"link\":\"\",\"created_at\":\"2013-12-10T13:13:31.000Z\",\"updated_at\":\"2013-12-10T13:13:31.000Z\"},\n" 
       + "{\"id\":5,\"session_id\":\"3eb8b185f0cbd71ff004b30453c90f54\",\"link\":\"\",\"created_at\":\"2013-12-10T13:13:31.000Z\",\"updated_at\":\"2013-12-10T13:13:31.000Z\"}]"; 

     String token_id = "3eb8b185f0cbd71ff004b30453c90f54"; 
     JSONArray jsonArray = new JSONArray(ar); 
     boolean match_found = false; 
     o: 
     for (int i = 0; i < jsonArray.length(); i++) { 
      if (token_id.equals(jsonArray.getJSONObject(i).getString("session_id"))) { 
       match_found = true; 
       break o; 
      } 
     } 
     if(match_found == true) 
     { 
      response.sendRedirect("error.jsp"); 
     } 
+0

我將如何創建String ar?你能幫忙嗎?我在java中有非常基本的知識,在此先感謝 – sukanta

+0

「ar」是包含json字符串的字符串,在您的情況下,我認爲它的recvbuff使用該字符串。 – Jhanvi

+0

其顯示此錯誤'org.apache.jasper.JasperException:無法編譯JSP的類:' – sukanta