2015-01-28 3 views
0

Я пытаюсь преобразовать строку в массив JSON на странице JSP, но он продолжает давать мне следующую ошибку:Невозможно преобразовать строку в JSONArray JSP страницу

-The constructor JSONArray(String) is undefined 

и

- The method get(String) is undefined for the type Object 

Я пытаюсь получить содержимое тела в массиве JSON, чтобы манипулировать результатом.

Вот моя JSP-страница:

<%@ page import="java.io.BufferedReader"%> 
<%@ page import="org.json.simple.*"%> 
<%@ page import="com.google.gson.*"%> 
<% 
try { 

     String body = null; 
     StringBuilder stringBuilder = new StringBuilder(); 
     BufferedReader bufferedReader = null; 

     try { 

      // aqui está o ponto: tem que abrir uma stream e ler os bytes, não vem pronto. 
      bufferedReader = request.getReader(); 



      char[] charBuffer = new char[128]; 
      int bytesRead = -1; 

      // precisa ler todos os caracters do buffer de entrada do request. 

      while ((bytesRead = bufferedReader.read(charBuffer)) > 0) { 
       stringBuilder.append(charBuffer, 0, bytesRead); 
      } 

     } catch (Exception ex) { 
      throw ex; 
     } finally { 
      if (bufferedReader != null) { 
       try { 
        bufferedReader.close(); 
       } catch (Exception ex) { 
        throw ex; 
       } 
      } 
     } 


     // pronto aqui está o conteúdo da chamada 
     body = stringBuilder.toString(); 

     JSONArray jArray = new JSONArray(body); 

     System.out.println(jArray.get(0).get("summary").toString()); 

     System.out.println("Body:["+body+"]"); 


} catch (Exception e) { 
    e.printStackTrace(); 
} finally { 

} 

%> 

И результат тела -

[ 
    [ 
    { 
     "summary": { 
     "externalInputs": [], 
     "accessPointId": 2, 
     "authorizedCount": 0, 
     "closedTime": null, 
     "detectedCount": 0, 
     "endTime": 1422493644041, 
     "enteredCount": 0, 
     "eventId": 12760, 
     "identifiedCount": 0, 
     "openedTime": null, 
     "siteId": 1, 
     "startTime": 1422493583912, 
     "systemFailure": null, 
     "unlockedTime": null, 
     "assistanceRequested": false, 
     "blacklistedPersonDetected": false, 
     "doorOpenedManually": false, 
     "doorRemainedOpen": false, 
     "hasEnded": true, 
     "tailgatingDetected": false, 
     "wasDoorOpened": false 
     }, 
     "entityDetailList": [] 
    } 
    ] 
] 

ответ

0

Если вы хотите использовать JSON вы должны определить начинающуюся страницы

<%@page import="org.json.JSONArray"%> 
<%@page import="org.json.JSONObject"%> 

Или если вы хотите использовать Gson

Вы должны установить свой gson как:

String json = "yourjson"; 
Gson gson = new Gson(); 
gson.toJson(json); 
gson.get... 
+0

Когда я пытаюсь импортировать эти библиотеки, получите ошибку. –

+0

Какая ошибка? Возможно, вы можете добавить свою серверную библиотеку в – hurricane

Смежные вопросы