簡體   English   中英

解析 JSON 文件 (JAVA)

[英]Parse JSON file (JAVA)

我想創建一個包含 JSONFile 中所有信息的 JSONObject。

我在網上看,只找到了如何在這個對象中添加一個人。 我想知道是否有任何方法可以將所有具有其屬性的人添加到一個 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();
        }

    }
}

這是 Json 數據:

{"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"}
]}

您可以使用JSONArray而不是JSONObject並在該對象內使用 for 循環進行迭代:

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

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

在這里您可以找到有關JSONArray 的更多詳細信息

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM