2017-03-22 35 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