class Json in java 中获取和获取 JSON 对象有什么区别

What is diffrence between get and getJSONObject in class Json in java

我有 JsonFormat :

{
    "product": [{
        "description": "my describtion",
        "isStock": "instock",
        "linkArray": [{
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/8e4996-1.jpg"
        }, {
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/19b37f-1.jpg"
        }, {
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/33bc31-1.jpg"
        }, {
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/459e33-1.jpg"
        }, {
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/a18f87-1.jpg"
        }, {
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/c58d16-1.jpg"
        }, {
            "link": "http:\/\/rozinleather.ir\/demo\/wp-content\/uploads\/2016\/05\/d952f8-2.jpg"
        }]
    }],
    "success": 1
}

我不明白如何获取嵌套的 JsonObject。 谢谢。

我认为你应该使用这样的东西

try {
            JSONObject root = new JSONObject("yourJsonString");
            JSONArray products = root.getJSONArray("product");

            for (int i = 0; i < products.length(); ++i){
                JSONObject prod = products.getJSONObject(i);

               // now parse product
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

首先你需要创建一个 JSONObject 传递 JSON 字符串作为参数:

JSONObject jsonObject = new JSONObject(jsonString);

然后,根据您的需要,您可能想要获取数组、另一个 JSON 对象或 JSONObject:

的值
JSONArray productArray = jsonObject.getJSONArray("product");
Integer success = jsonObject.getInt("success");

您可以遍历 JSONArray 并获取数组的所有元素,并对数组的每个对象执行您想要的操作(提取值、获取数组或元素的对象等):

for (int i = 0; i < productArray.length(); i++) {
    JSONObject product = productArray.getJSONObject(i);
    String description = product.getString("description");
    ...
}

阅读更多关于 JSONObjectJSONArray 可用方法的信息:

JSONObject

JSONArray