java - 使用 JSONReader 或 JSONObject/JSONArray 解析 JSON 数据

标签 java android json

我有一些 JSON(如下所示),我试图解析整个 JSON,每个对象都是一个类的新实例,该类声明了下面的变量。做这个的最好方式是什么?我应该使用 JSONReader 还是使用 JSONObject 和 JSONArray。我一直在阅读一些教程并提出一些一般性问题,但我还没有看到任何有关如何像这样解析数据的示例。

{
    "id": 356,
    "hassubcategories": true,
    "subcategories": [
        {
            "id": 3808,
            "CategoryName": "Current Products",
            "CategoryImage": null,
            "hassubcategories": true,
            "subcategories": [
                {
                    "id": 4106,
                    "CategoryName": "Architectural",
                    "CategoryImage": "2637",
                    "hassubcategories": true,
                    "subcategories": [
                        {
                            "id": 391,
                            "CategoryName": "Flooring",
                            "CategoryImage": "2745",
                            "hassubcategories": false
                        }
                    ]
                }
            ]
        },
        {
            "id": 3809,
            "CategoryName": "Non-Current Products",
            "CategoryImage": null,
            "hassubcategories": true,
            "subcategories": [
                {
                    "id": 4107,
                    "CategoryName": "Desk",
                    "CategoryImage": "2638",
                    "hassubcategories": true,
                    "subcategories": [
                        {
                            "id": 392,
                            "CategoryName": "Wood",
                            "CategoryImage": "2746",
                            "hassubcategories": false
                        }
                    ]
                }
            ]
        }
    ]
}

最佳答案

仅当您的 json 数据大小小于 1MB 时,您才可以使用 JSON 对象/JSON 数组。否则你应该使用 JSONReader。 JSONReader 实际上使用流式处理方法,而 JSONObject 和 JSONArray 最终一次将所有数据加载到 RAM 上,这会在 json 较大的情况下导致 OutOfMemoryException。

关于java - 使用 JSONReader 或 JSONObject/JSONArray 解析 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14742902/

相关文章:

java - 无法加载配置类

android - 是否可以重用部分 AndroidManifest.xml 文件?

javascript - npm start 没有获取更新的 package.json

java - 避免 Jackson 中 JsonTypeInfo 生成的重复字段

Java ArrayList在for循环中越界

java - Struts 2 在 validator 表达式中使用 StringUtils

java - 为什么我要在这个例子中使用 JScrollPane ?

android - 没有在路径 dexpathlist 上找到类 scrollview

android - 谷歌地图如何在安卓设备离线的情况下获取地址

javascript - 如何使用 POST 方法在 XDR 中发送 JSON 数据