kaveer
3/12/2017 - 6:23 AM

json to java model

json to java model

{
  "raceCount": 8,
  "race": [
    {
      "raceNumber": 1,
      "distance": "1500 m",
      "valueBenchmark": "Rating [0-20]",
      "time": "12h30",
      "raceName": "THE COURTESY CUP  - DRAPER'S MILE",
      "horseCount": 13,
      "raceHorses": [
        {
          "horseName": "ARABIAN EMPIRE",
          "horseNumber": 1,
          "stable": "S.NARANG",
          "handicap": 21,
          "value": 21,
          "raceNumber": 1
        },
        {
          "horseName": "ARROWHEAD",
          "horseNumber": 2,
          "stable": "R.MAINGARD",
          "handicap": 21,
          "value": 21,
          "raceNumber": 1
        },
        {
          "horseName": "FYRKAT",
          "horseNumber": 3,
          "stable": "P.MERVEN",
          "handicap": 19,
          "value": 19,
          "raceNumber": 1
        },
        {
          "horseName": "TORNADO MAN",
          "horseNumber": 4,
          "stable": "R.GUJADHUR",
          "handicap": 18,
          "value": 18,
          "raceNumber": 1
        },
        {
          "horseName": "ABSALOM",
          "horseNumber": 5,
          "stable": "R.PERTAUB",
          "handicap": 17,
          "value": 17,
          "raceNumber": 1
        },
        {
          "horseName": "TIGER MASTER",
          "horseNumber": 6,
          "stable": "C.RAMDIN",
          "handicap": 15,
          "value": 15,
          "raceNumber": 1
        },
        {
          "horseName": "CAPTAIN MATTHEW",
          "horseNumber": 7,
          "stable": "S.NARANG",
          "handicap": 13,
          "value": 13,
          "raceNumber": 1
        },
        {
          "horseName": "DREAMS COME TRUE",
          "horseNumber": 8,
          "stable": "R.PERTAUB",
          "handicap": 12,
          "value": 12,
          "raceNumber": 1
        },
        {
          "horseName": "TEAMOG",
          "horseNumber": 9,
          "stable": "J.M.HENRY",
          "handicap": 11,
          "value": 11,
          "raceNumber": 1
        },
        {
          "horseName": "ALBERTS DAY",
          "horseNumber": 10,
          "stable": "R.GUJADHUR",
          "handicap": 10,
          "value": 10,
          "raceNumber": 1
        },
        {
          "horseName": "MARINE SKY",
          "horseNumber": 11,
          "stable": "R.PERTAUB",
          "handicap": 10,
          "value": 10,
          "raceNumber": 1
        },
        {
          "horseName": "ARROMONCHES",
          "horseNumber": 12,
          "stable": "J.M.HENRY",
          "handicap": 6,
          "value": 6,
          "raceNumber": 1
        },
        {
          "horseName": "PUT FOOT SINGE",
          "horseNumber": 13,
          "stable": "C.RAMDIN",
          "handicap": 6,
          "value": 6,
          "raceNumber": 1
        }
      ]
    },
    {
      "raceNumber": 2,
      "distance": "1400 m",
      "valueBenchmark": "Rating [0-25]",
      "time": "13h05",
      "raceName": "LE GRAND PRIX DU CHAMP DE MARS",
      "horseCount": 15,
      "raceHorses": [
        {
          "horseName": "CANADIAN DOLLAR",
          "horseNumber": 1,
          "stable": "G.ROUSSET",
          "handicap": 26,
          "value": 26,
          "raceNumber": 2
        },
        {
          "horseName": "DOMANI",
          "horseNumber": 2,
          "stable": "J.M.HENRY",
          "handicap": 26,
          "value": 26,
          "raceNumber": 2
        },
        {
          "horseName": "DOUBLE DASH",
          "horseNumber": 3,
          "stable": "P.MERVEN",
          "handicap": 24,
          "value": 24,
          "raceNumber": 2
        },
        {
          "horseName": "IT'S MY PARTY",
          "horseNumber": 4,
          "stable": "R.GUJADHUR",
          "handicap": 24,
          "value": 24,
          "raceNumber": 2
        },
        {
          "horseName": "KINGS ADVISOR",
          "horseNumber": 5,
          "stable": "R.MAINGARD",
          "handicap": 24,
          "value": 24,
          "raceNumber": 2
        },
        {
          "horseName": "RAVATAK",
          "horseNumber": 6,
          "stable": "R.GUJADHUR",
          "handicap": 24,
          "value": 24,
          "raceNumber": 2
        },
        {
          "horseName": "NO PRISONERS",
          "horseNumber": 7,
          "stable": "J.M.HENRY",
          "handicap": 23,
          "value": 23,
          "raceNumber": 2
        },
        {
          "horseName": "RIGHT TO TANGO",
          "horseNumber": 8,
          "stable": "J.M.HENRY",
          "handicap": 23,
          "value": 23,
          "raceNumber": 2
        },
        {
          "horseName": "SMITTEN",
          "horseNumber": 9,
          "stable": "G.ROUSSET",
          "handicap": 22,
          "value": 22,
          "raceNumber": 2
        },
        {
          "horseName": "ARABIAN EMPIRE",
          "horseNumber": 10,
          "stable": "S.NARANG",
          "handicap": 21,
          "value": 21,
          "raceNumber": 2
        },
        {
          "horseName": "ARROWHEAD",
          "horseNumber": 11,
          "stable": "R.MAINGARD",
          "handicap": 21,
          "value": 21,
          "raceNumber": 2
        },
        {
          "horseName": "PORT ALBERT",
          "horseNumber": 12,
          "stable": "C.RAMDIN",
          "handicap": 21,
          "value": 21,
          "raceNumber": 2
        },
        {
          "horseName": "ABSALOM",
          "horseNumber": 13,
          "stable": "R.PERTAUB",
          "handicap": 17,
          "value": 17,
          "raceNumber": 2
        },
        {
          "horseName": "CITY TREASURER",
          "horseNumber": 14,
          "stable": "J.M.HENRY",
          "handicap": 15,
          "value": 15,
          "raceNumber": 2
        },
        {
          "horseName": "PUT FOOT SINGE",
          "horseNumber": 15,
          "stable": "C.RAMDIN",
          "handicap": 6,
          "value": 6,
          "raceNumber": 2
        }
      ]
    },
    {
      "raceNumber": 3,
      "distance": "1365 m",
      "valueBenchmark": "Rating Benchmark 41",
      "time": "13h40",
      "raceName": "THE ROTARY CLUB OF QUATRE BORNES CUP",
      "horseCount": 8,
      "raceHorses": [
        {
          "horseName": "RUM TUM TUGGER",
          "horseNumber": 1,
          "stable": "R.MAINGARD",
          "handicap": 40,
          "value": 40,
          "raceNumber": 3
        },
        {
          "horseName": "THE REAL HERO",
          "horseNumber": 2,
          "stable": "G.ROUSSET",
          "handicap": 40,
          "value": 40,
          "raceNumber": 3
        },
        {
          "horseName": "TRAIANIUS",
          "horseNumber": 3,
          "stable": "S.NARANG",
          "handicap": 39,
          "value": 39,
          "raceNumber": 3
        },
        {
          "horseName": "AL CAPITANO",
          "horseNumber": 4,
          "stable": "J.M.HENRY",
          "handicap": 38,
          "value": 38,
          "raceNumber": 3
        },
        {
          "horseName": "CASH LORD",
          "horseNumber": 5,
          "stable": "S.NARANG",
          "handicap": 38,
          "value": 38,
          "raceNumber": 3
        },
        {
          "horseName": "JAMBAMMAN",
          "horseNumber": 6,
          "stable": "R.PERTAUB",
          "handicap": 38,
          "value": 38,
          "raceNumber": 3
        },
        {
          "horseName": "KARRAAR ",
          "horseNumber": 7,
          "stable": "G.ROUSSET",
          "handicap": 37,
          "value": 37,
          "raceNumber": 3
        },
        {
          "horseName": "ARTFUL PRINCE",
          "horseNumber": 8,
          "stable": "C.RAMDIN",
          "handicap": 36,
          "value": 36,
          "raceNumber": 3
        }
      ]
    },
    {
      "raceNumber": 4,
      "distance": "1400 m",
      "valueBenchmark": "Rating Benchmark 46",
      "time": "14h15",
      "raceName": "THE OWNERS CUP",
      "horseCount": 8,
      "raceHorses": [
        {
          "horseName": "CASTLE",
          "horseNumber": 1,
          "stable": "A.PERDRAU",
          "handicap": 46,
          "value": 46,
          "raceNumber": 4
        },
        {
          "horseName": "PHIRI E KWATILE",
          "horseNumber": 2,
          "stable": "R.MAINGARD",
          "handicap": 46,
          "value": 46,
          "raceNumber": 4
        },
        {
          "horseName": "LIETUVA",
          "horseNumber": 3,
          "stable": "G.ROUSSET",
          "handicap": 45,
          "value": 45,
          "raceNumber": 4
        },
        {
          "horseName": "TOROTINO",
          "horseNumber": 4,
          "stable": "R.GUJADHUR",
          "handicap": 45,
          "value": 45,
          "raceNumber": 4
        },
        {
          "horseName": "GAMELOFT",
          "horseNumber": 5,
          "stable": "S.NARANG",
          "handicap": 44,
          "value": 44,
          "raceNumber": 4
        },
        {
          "horseName": "NEW STAR",
          "horseNumber": 6,
          "stable": "G.ROUSSET",
          "handicap": 44,
          "value": 44,
          "raceNumber": 4
        },
        {
          "horseName": "VALERIN",
          "horseNumber": 7,
          "stable": "A.PERDRAU",
          "handicap": 43,
          "value": 43,
          "raceNumber": 4
        },
        {
          "horseName": "ANAFESTO",
          "horseNumber": 8,
          "stable": "J.M.HENRY",
          "handicap": 38,
          "value": 38,
          "raceNumber": 4
        }
      ]
    },
    {
      "raceNumber": 5,
      "distance": "1500 m",
      "valueBenchmark": "Rating Benchmark 56",
      "time": "14h55",
      "raceName": "THE INDEPENDENCE CUP - DRAPER'S MILE",
      "horseCount": 6,
      "raceHorses": [
        {
          "horseName": "GREYS INN CONTROL",
          "horseNumber": 1,
          "stable": "R.GUJADHUR",
          "handicap": 54,
          "value": 54,
          "raceNumber": 5
        },
        {
          "horseName": "TUBE WAVE",
          "horseNumber": 2,
          "stable": "R.MAINGARD",
          "handicap": 51,
          "value": 51,
          "raceNumber": 5
        },
        {
          "horseName": "PARCEVAL",
          "horseNumber": 3,
          "stable": "R.MAINGARD",
          "handicap": 50,
          "value": 50,
          "raceNumber": 5
        },
        {
          "horseName": "PONT D'AVIGNON",
          "horseNumber": 4,
          "stable": "G.ROUSSET",
          "handicap": 49,
          "value": 49,
          "raceNumber": 5
        },
        {
          "horseName": "SCORECARD ",
          "horseNumber": 5,
          "stable": "J.M.HENRY",
          "handicap": 48,
          "value": 48,
          "raceNumber": 5
        },
        {
          "horseName": "SILVER DICE",
          "horseNumber": 6,
          "stable": "C.RAMDIN",
          "handicap": 48,
          "value": 48,
          "raceNumber": 5
        }
      ]
    },
    {
      "raceNumber": 6,
      "distance": "1400 m",
      "valueBenchmark": "Rating [60+] G.3",
      "time": "15h30",
      "raceName": "THE NOBLE SALUTE CUP",
      "horseCount": 6,
      "raceHorses": [
        {
          "horseName": "ALBERT MOONEY",
          "horseNumber": 1,
          "stable": "G.ROUSSET",
          "handicap": 75,
          "value": 75,
          "raceNumber": 6
        },
        {
          "horseName": "CASEY'S WAR",
          "horseNumber": 2,
          "stable": "R.MAINGARD",
          "handicap": 70,
          "value": 70,
          "raceNumber": 6
        },
        {
          "horseName": "REIM",
          "horseNumber": 3,
          "stable": "GUJADHUR",
          "handicap": 70,
          "value": 70,
          "raceNumber": 6
        },
        {
          "horseName": "ABINGTON",
          "horseNumber": 4,
          "stable": "A.PERDRAU",
          "handicap": 67,
          "value": 67,
          "raceNumber": 6
        },
        {
          "horseName": "EVEREST",
          "horseNumber": 5,
          "stable": "G.ROUSSET",
          "handicap": 64,
          "value": 64,
          "raceNumber": 6
        },
        {
          "horseName": "LIQUID MOTION",
          "horseNumber": 6,
          "stable": "P.MERVEN",
          "handicap": 63,
          "value": 63,
          "raceNumber": 6
        }
      ]
    },
    {
      "raceNumber": 7,
      "distance": "1365 m",
      "valueBenchmark": "Rating Benchmark 31",
      "time": "16h05",
      "raceName": "THE PORT AU PRINCE CUP",
      "horseCount": 8,
      "raceHorses": [
        {
          "horseName": "BILLY BOJANGLES",
          "horseNumber": 1,
          "stable": "R.MAINGARD",
          "handicap": 29,
          "value": 29,
          "raceNumber": 7
        },
        {
          "horseName": "DON'T TELL MAMA",
          "horseNumber": 2,
          "stable": "J.M.HENRY",
          "handicap": 29,
          "value": 29,
          "raceNumber": 7
        },
        {
          "horseName": "MELSON",
          "horseNumber": 3,
          "stable": "G.ROUSSET",
          "handicap": 29,
          "value": 29,
          "raceNumber": 7
        },
        {
          "horseName": "AMBER PALACE",
          "horseNumber": 4,
          "stable": "P.MERVEN",
          "handicap": 28,
          "value": 28,
          "raceNumber": 7
        },
        {
          "horseName": "BLIZZARD OF OZZ",
          "horseNumber": 5,
          "stable": "S.NARANG",
          "handicap": 26,
          "value": 26,
          "raceNumber": 7
        },
        {
          "horseName": "RUBY ROCKER",
          "horseNumber": 6,
          "stable": "R.GUJADHUR",
          "handicap": 26,
          "value": 26,
          "raceNumber": 7
        },
        {
          "horseName": "JOE'S LEGACY",
          "horseNumber": 7,
          "stable": "R.PERTAUB",
          "handicap": 23,
          "value": 23,
          "raceNumber": 7
        },
        {
          "horseName": "PORT ALBERT",
          "horseNumber": 8,
          "stable": "C.RAMDIN",
          "handicap": 21,
          "value": 21,
          "raceNumber": 7
        }
      ]
    },
    {
      "raceNumber": 8,
      "distance": "1400 m",
      "valueBenchmark": "Rating [0-25]",
      "time": "16h40",
      "raceName": "THE LALDHEER PLATE",
      "horseCount": 14,
      "raceHorses": [
        {
          "horseName": "BLIZZARD OF OZZ",
          "horseNumber": 1,
          "stable": "S.NARANG",
          "handicap": 26,
          "value": 26,
          "raceNumber": 8
        },
        {
          "horseName": "CANADIAN DOLLAR",
          "horseNumber": 2,
          "stable": "G.ROUSSET",
          "handicap": 26,
          "value": 26,
          "raceNumber": 8
        },
        {
          "horseName": "DOMANI",
          "horseNumber": 3,
          "stable": "J.M.HENRY",
          "handicap": 26,
          "value": 26,
          "raceNumber": 8
        },
        {
          "horseName": "BRIGHT SHINING",
          "horseNumber": 4,
          "stable": "C.RAMDIN",
          "handicap": 24,
          "value": 24,
          "raceNumber": 8
        },
        {
          "horseName": "DOUBLE DASH",
          "horseNumber": 5,
          "stable": "P.MERVEN",
          "handicap": 24,
          "value": 24,
          "raceNumber": 8
        },
        {
          "horseName": "IT'S MY PARTY",
          "horseNumber": 6,
          "stable": "R.GUJADHUR",
          "handicap": 24,
          "value": 24,
          "raceNumber": 8
        },
        {
          "horseName": "KINGS ADVISOR",
          "horseNumber": 7,
          "stable": "R.MAINGARD",
          "handicap": 24,
          "value": 24,
          "raceNumber": 8
        },
        {
          "horseName": "RAVATAK",
          "horseNumber": 8,
          "stable": "R.GUJADHUR",
          "handicap": 24,
          "value": 24,
          "raceNumber": 8
        },
        {
          "horseName": "JOE'S LEGACY",
          "horseNumber": 9,
          "stable": "R.PERTAUB",
          "handicap": 23,
          "value": 23,
          "raceNumber": 8
        },
        {
          "horseName": "NO PRISONERS",
          "horseNumber": 10,
          "stable": "J.M.HENRY",
          "handicap": 23,
          "value": 23,
          "raceNumber": 8
        },
        {
          "horseName": "RIGHT TO TANGO",
          "horseNumber": 11,
          "stable": "J.M.HENRY",
          "handicap": 23,
          "value": 23,
          "raceNumber": 8
        },
        {
          "horseName": "SMITTEN",
          "horseNumber": 12,
          "stable": "G.ROUSSET",
          "handicap": 22,
          "value": 22,
          "raceNumber": 8
        },
        {
          "horseName": "CITY TREASURER",
          "horseNumber": 13,
          "stable": "J.M.HENRY",
          "handicap": 15,
          "value": 15,
          "raceNumber": 8
        },
        {
          "horseName": "CAPTAIN MATTHEW",
          "horseNumber": 14,
          "stable": "S.NARANG",
          "handicap": 13,
          "value": 13,
          "raceNumber": 8
        }
      ]
    }
  ]
}
 NominationViewModel nomination = new NominationViewModel();
 
 private void DeserializeJsonObject(String result) {
        try {
            JSONObject jsonObject = new JSONObject(result);
            JSONArray raceArray = jsonObject.getJSONArray("race");

            nomination.setRaceCount(jsonObject.getInt("raceCount"));

            List<Race> races = new ArrayList<>();
            List<RaceHorse> raceHorses = new ArrayList<>();

            for(int i=0; i<raceArray.length(); i++) {
                JSONObject raceObject = raceArray.getJSONObject(i);
                JSONArray raceHorsesArray = raceObject.getJSONArray("raceHorses");

                Race item = new Race();

                item.setRaceNumber(raceObject.getInt("raceNumber"));
                item.setDistance(raceObject.getString("distance"));
                item.setValueBenchmark(raceObject.getString("valueBenchmark"));
                item.setTime(raceObject.getString("time"));
                item.setRaceName(raceObject.getString("raceName"));
                item.setHorseCount(raceObject.getInt("horseCount"));

                for(int count=0;count<raceHorsesArray.length();count++){
                    JSONObject raceHorseObject = raceHorsesArray.getJSONObject(count);
                    RaceHorse items = new RaceHorse();

                    items.setHorseName(raceHorseObject.getString("horseName"));
                    items.setHorseNumber(raceHorseObject.getInt("horseNumber"));
                    items.setStable(raceHorseObject.getString("stable"));
                    items.setHandicap(raceHorseObject.getInt("handicap"));
                    items.setValue(raceHorseObject.getInt("value"));
                    items.setRaceNumber(raceHorseObject.getInt("raceNumber"));

                    raceHorses.add(items);
                }
                item.setRaceHorses(raceHorses);

                races.add(item);
            }

            nomination.setRace(races);

            System.out.print(nomination);

        } catch (JSONException e) {
            e.printStackTrace();
        }
    }