Анализировать данные JSON с помощью JSONReader или JSONObject / JSONArray

У меня есть некоторые 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
                        }
                    ]
                }
            ]
        }
    ]
}

Ответы на вопрос(5)

Ваш ответ на вопрос