ciao!

sono solito usare delle classi che rappresentano le string json con tutti i vari campi.
con tutti i vari getter e setter del caso.
ma fino ad oggi ho lavorato sempre con json abbastanza semplici.
oggi mi ritrovo con il json qua sotto, e non saprei bene come struttuare la / le classi.
il json ha delle informazioni generiche all'inizio.
e poi ha un campo list dove dentro ci sono dati ripetuti più volte (con valori diversi ovviamente) a seconda dei giorni:
codice:
{
    "city": {
        "id": 524901,
        "name": "Moscow",
        "coord": {
            "lon": 37.615555,
            "lat": 55.75222
        },
        "country": "RU",
        "population": 0,
        "sys": {
            "population": 0
        }
    },
    "cod": "200",
    "message": 0.0048,
    "cnt": 40,
    "list": [
        {
            "dt": 1442156400,
            "main": {
                "temp": 286.05,
                "temp_min": 286.05,
                "temp_max": 286.154,
                "pressure": 1027.24,
                "sea_level": 1047.17,
                "grnd_level": 1027.24,
                "humidity": 73,
                "temp_kf": -0.1
            },
            "weather": [
                {
                    "id": 800,
                    "main": "Clear",
                    "description": "sky is clear",
                    "icon": "01d"
                }
            ],
            "clouds": {
                "all": 0
            },
            "wind": {
                "speed": 1.26,
                "deg": 145.5
            },
            "rain": {},
            "sys": {
                "pod": "d"
            },
            "dt_txt": "2015-09-13 15:00:00"
        },
        {
            "dt": 1442167200,
            "main": {
                "temp": 280.35,
                "temp_min": 280.35,
                "temp_max": 280.446,
                "pressure": 1027.43,
                "sea_level": 1047.6,
                "grnd_level": 1027.43,
                "humidity": 91,
                "temp_kf": -0.1
            },
            "weather": [
                {
                    "id": 801,
                    "main": "Clouds",
                    "description": "few clouds",
                    "icon": "02n"
                }
            ],
            "clouds": {
                "all": 12
            },
            "wind": {
                "speed": 0.97,
                "deg": 144.006
            },
            "rain": {},
            "sys": {
                "pod": "n"
            },
            "dt_txt": "2015-09-13 18:00:00"
        }
    ]
}
in questi casi uso sempre una classe unica per tutti i campi?
oppure due classi, una per le info generiche e una per i dati del campo list?
oppure ancora, due classi di cui la seconda estende la prima?