簡體   English   中英

需要使用java讀取一個JSON數組對象

[英]Need to read a JSON array object using java

需要使用 java 迭代 json 數組對象,請在這方面指導我

我已經提出了我的 JSON 結構下面是開發人員提供的 json 我需要獲取 json 數組對象作為我的 selenium 腳本的輸入。

有人可以幫助我嗎?

[{
        "Name": "Name1",
        "Address": "Address",
        "PhoneNo": 2142751,
        "Courses": [{
                "CourseName": "JAVA",
                "Cost": 12000
            },
            {
                "CourseName": "Testing",
                "Cost": 12000
            }
        ]
    },
    {
        "Name": "Name2",
        "Address": "Address2",
        "PhoneNo": 214275143,

        "Courses": [{
                "CourseName": "JAVAV2",
                "Cost": 12000
            },
            {
                "CourseName": "Security",
                "Cost": 12000
            }
        ]
    }
]

預期字符串名稱 = 名稱字符串 courseName 的值 = CourseName 的值

好吧,這里我們只導入類ObjectMapper,當然,我們需要在我們需要的類中實例化它。 之后,調用函數:

Object object = objectMapper.readValue(jsonAsString, Object.class);

也許這對你有用。

您有多種讀取 JSON 的選項,您可以使用來自 primefaces 庫的 JSONArray 或來自谷歌庫的 JsonArray。

在這種情況下,我使用import org.primefaces.json.JSONArray; 如果使用 maven,請確保擁有該庫或 jar 或依賴項。

要獲取名稱和課程名稱,請執行以下操作:

JSONArray jArray = new JSONArray(yourJsonStringGoesHere);
String name = jArray.getJSONObject(0).getString("Name");
String courseName = jArray.getJSONObject(0).getJSONArray("Courses").getJSONObject(0).getString("CourseName");

此外,如果您需要從 JSON 中獲取每個名稱和 courseName,您可以像這樣執行 for 循環:

            // JSONArray made with your JSON String
            JSONArray jArray = new JSONArray(yourJsonString);
            // JSONArray made with the sub array of courses in your JSON
            JSONArray jArrayCourses = jArray.getJSONObject(0).getJSONArray("Courses");
            // Loop trough your JSON array
            for (int i = 0; i < jArray.length(); i++) {
                // Get name of each JSONObject inside your array
                String name = jArray.getJSONObject(i).getString("Name");
                System.out.println("name: "+name);
                // Loop trough each sub array of courses.
                for (int j = 0; j < jArrayCourses.length(); j++) {
                    // Get courseName of each JSONObject inside your courses sub array
                    String courseName = jArray.getJSONObject(i).getJSONArray("Courses").getJSONObject(j)
                            .getString("CourseName");
                    System.out.println("courseName: "+courseName);

                }

            }

輸出

name: Name1
courseName: JAVA
courseName: Testing
name: Name2
courseName: JAVAV2
courseName: Security

問我你是否理解某些東西或需要更多幫助,我今天感到很慷慨:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM