1

I would like to create an JSONObject that contains all informations in JSONFile.

I was looking on internet and only found how to add one person in this object. I would like to know if there is any way to add all the persons with their attributes in one single JSONObject.

public class JsonSingleton extends AbstractSingleton {

    final String personnesJsonPathFile = "personnesJson.json";

    private JsonSingleton() {
    }

    public Personne createPersonneWithFileObject( JSONObject jsonObjectPerson ) {

        int idPersonne = Integer.parseInt( ( String ) jsonObjectPerson.get( "id" ) );
        String prenom = ( String ) jsonObjectPerson.get( "prenom" );
        String nom = ( String ) jsonObjectPerson.get("nom");
        Double poids = Double.parseDouble( ( String ) jsonObjectPerson.get( "poids" ) );
        Double taille = Double.parseDouble( ( String ) jsonObjectPerson.get( "taille" ) );
        String rue = ( String ) jsonObjectPerson.get( "rue" );
        String ville = ( String ) jsonObjectPerson.get( "ville" );
        String codePostal = ( String ) jsonObjectPerson.get( "codePostal" );
        return new Personne( idPersonne, prenom, nom, poids, taille, rue, ville, codePostal );
        }

    @Override
    protected void extractPersonnesDatas() {

        JSONParser parser = new JSONParser();
        try {
            Object obj = parser.parse( new FileReader ( personnesJsonPathFile ) );

        } catch (IOException | ParseException e) {
            e.printStackTrace();
        }

    }
}

Here is Json Data:

{"personnes":[{"id":1,"prenom":"Martin","nom":"Marshall","poids":60,"taille":150,"rue":"rue de Nantes","ville":"Laval","codePostal":"53000"},
{"id":2,"prenom":"Claire","nom":"Chazal","poids":65,"taille":155,"rue":"rue de Rennes","ville":"Laval","codePostal":"53000"},
{"id":3,"prenom":"Jacques","nom":"Dupont","poids":90,"taille":180,"rue":"rue des Anges","ville":"Paris","codePostal":"75000"},
{"id":4,"prenom":"Celine","nom":"Dia","poids":66,"taille":166,"rue":"rue Diderot","ville":"Paris","codePostal":"75000"},
{"id":5,"prenom":"Remy","nom":"Cheval","poids":88,"taille":200,"rue":"rue du paradis","ville":"Nantes","codePostal":"44000"},
{"id":6,"prenom":"Nicolas","nom":"Dutrou","poids":40,"taille":150,"rue":"rue Appert","ville":"Nantes","codePostal":"44000"},
{"id":7,"prenom":"Marie","nom":"Claire","poids":92,"taille":188,"rue":"rue du paradis","ville":"Rouen","codePostal":"76000"},
{"id":8,"prenom":"Nathalie","nom":"Sage","poids":75,"taille":175,"rue":"rue Appert","ville":"Rouen","codePostal":"76000"},
{"id":9,"prenom":"Jean","nom":"Dujardin","poids":56,"taille":166,"rue":"rue des sorciers","ville":"Havre","codePostal":"76800"},
{"id":10,"prenom":"Michel","nom":"Leclerc","poids":100,"taille":202,"rue":"rue du bonneur","ville":"Havre","codePostal":"76800"},
{"id":11,"prenom":"Julien","nom":"Marshall","poids":65,"taille":144,"rue":"rue de Nantes","ville":"Laval","codePostal":"53000"},
{"id":12,"prenom":"Julien","nom":"Claire","poids":85,"taille":169,"rue":"rue du Paradis","ville":"Paris","codePostal":"75000"},
{"id":13,"prenom":"Jacques","nom":"Dupont","poids":87,"taille":172,"rue":"rue des Passeurs","ville":"Paris","codePostal":"75000"},
{"id":14,"prenom":"Charles","nom":"Hallyday","poids":69,"taille":133,"rue":"rue des Feugrais","ville":"Rouen","codePostal":"76000"},
{"id":15,"prenom":"Serge","nom":"Lama","poids":78,"taille":174,"rue":"rue des Heureux","ville":"Nantes","codePostal":"44000"},
{"id":16,"prenom":"Vincent","nom":"Thomas","poids":35,"taille":169,"rue":"rue de Paris","ville":"Rennes","codePostal":"35000"},
{"id":17,"prenom":"Eric","nom":"Dummat","poids":56,"taille":155,"rue":"rue de Versaille","ville":"Paris","codePostal":"75000"},
{"id":18,"prenom":"Nicolas","nom":"Samuel","poids":49,"taille":171,"rue":"rue de Saint Louis","ville":"Laval","codePostal":"53000"},
{"id":19,"prenom":"Rémy","nom":"Guerry","poids":54,"taille":157,"rue":"rue des Sages","ville":"Lyon","codePostal":"69000"},
{"id":20,"prenom":"Nicolas","nom":"Drapeau","poids":63,"taille":145,"rue":"rue Mitterrand","ville":"Limoges","codePostal":"87000"}
]}
0

1 Answer 1

2

You can use JSONArray instead of JSONObject and iterate with for loop inside that object:

JSONArray array = obj.getJSONArray("value");

for (int i = 0; i < array.length(); i++) {
    System.out.println(arr.getJSONObject(i).getString("prenom"));
}

Here you can find further details about JSONArray

Sign up to request clarification or add additional context in comments.

1 Comment

thanks for your answer it's a school project with methods to respect the method public Personne createPersonneWithFileObject( JSONObject jsonObjectPerson ) takes a JSONObject as a parameter

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.