2017-03-22 36 views
1
@Path("/getVersion") 
    @POST 
    @Produces(MediaType.APPLICATION_JSON) 
    public String getVersion(String getVersionJson) { 
     String version = "", patches = "", connectionStatus = "", output1 = "", output2 = ""; 

     try { 

      JSONObject inputJson = new JSONObject(getVersionJson); 

      String ip = inputJson.getString("ipaddress").trim(); 

      String userName = inputJson.getString("username").trim(); 
      String passWord = inputJson.getString("password").trim(); 
      connectionStatus = getSSHConnection(ip, userName, passWord); 

      if (connectionStatus.equals("Connected")) { 

       //Version Check 
       expect.send("bwshowver" + "\n"); 
       if (expect.expect("$") > -1) { 
        String contt = ""; 
        contt = (expect.before); 
        if (contt != null && contt != "") { 

         contt = contt.replaceAll("\n+", "\n"); 
         contt = contt.replaceAll(" +", " "); 

         String splitter[] = contt.split("\n"); 

         for (int i = 0; i < splitter.length; i++) { 
//       
          if (splitter[i].contains("Patches")) { 
           patches = splitter[i]; 
          } 
          //version 
          if (splitter[i].contains("version")) { 
           version = splitter[i]; 
          } 
//       output1=version.toString(); 
//       output2=patches.toString(); 
//        output3=output1+output2; 
//          
          output1 = contt; 
         } 

        } 

       } else { 
        output1 = "Error in version check"; 
        System.out.println("Error in version check"); 
       } 

      } else { 
       output1 = connectionStatus; 
       System.out.println(connectionStatus); 
      } 
     } catch (Exception e) { 
      output1 = "Error"; 
      //  logger.error("Exception in getVersion Function-ServService Class: " + e.getMessage()); 
     } finally { 
      stopSSH(); 
     } 

     return output3; 
    } 

//它正在從getVersion傳遞的字符串包含如何訪問jsonarray elemennts

[{"ipaddress":"10.253.140.116","password":"c0mcast!","username":"bwadmin"},{"ipaddress":"10.253.140.117","password":"bwadmin!","username":"bwadmin"}] 

//我的要求是訪問的ip地址和密碼,用戶名和存放物品的價值數組並將它們發送到ConnectionStatus。

+0

你已經明白了你所需要的一切。 – LppEdd

回答

0
JSONArray jsonArr = new JSONArray(getVersionJson); 

for (int i = 0; i < jsonArr.length(); i++) { 
    JSONObject jsonObj = jsonArr.getJSONObject(i); 
    //Now you can fetch values from each JSON Object 
} 

JSONObject class只代表一個JSON。這通常在大括號{}內。
如果預期的輸入getVersionJson只是一個JSON對象,則代碼有效。

但是,您在輸入字符串getVersionJson中獲取了一個JSON對象數組,因此您需要使用JSONArray類來處理JSON對象數組。
這通常是[ { }, { }, { }, ... ]

JSONArray延伸List,因此它可以被重複讀取每個JSONObject值。

以下是供參考的文件:Interface JsonArray

+1

儘管此代碼片段可能會解決問題,但[包括解釋](http://meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers)確實有助於提高帖子的質量。請記住,您將來會爲讀者回答問題,而這些人可能不知道您的代碼建議的原因。 – DimaSan

+0

謝謝!我已經添加了解釋。 – f2001340