如何访问jsonarray elemennts

时间:2017-03-22 07:45:35

标签: java json

 @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传递的字符串包含

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

//我的要求是访问ipaddress的值和密码以及用户名并将项目存储在数组中并将它们发送到ConnectionStatus。

1 个答案:

答案 0 :(得分: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类只代表一个JSON。这通常在大括号{}内 如果预期的输入getVersionJson只是一个JSON对象,那么您的代码就可以运行。

但是,您在输入字符串getVersionJson中获取了一组JSON对象,因此您需要使用JSONArray类来处理JSON对象数组。
这通常是[ { }, { }, { }, ... ]

JSONArray扩展List,因此可以迭代读取每个JSONObject值。

以下是供参考的文档:Interface JsonArray