web-dev-qa-db-fra.com

Tableau JSON en objets Java

J'ai besoin d'analyser un fichier JSON qui ressemble à ceci:

[
  {
    "y": 148, 
    "x": 155
  }, 
  {
    "y": 135, 
    "x": 148
  }, 
  {
    "y": 148, 
    "x": 154
  }
]

Et je veux mettre ces coordonnées X et Y dans un objet JavaObject, cette classe ressemble à ceci:

public class Click {
    int x;
    int y;


    public Click(int x, int y) {
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
}

J'ai regardé gson parce qu'ils disent qu'il est facile à quitter, mais je ne comprends pas comment je peux le faire à partir de mon dossier.

10
ProblemAnswerQue

en supposant que les données de votre chaîne json sont stockées dans la variable jsonStr:

String jsonStr = getJsonFromSomewhere();
Gson gson = new Gson();
Click clicks[] = gson.fromJson(jsonStr, Click[].class);
19
Yazan

Découvrez l'API Gson et quelques exemples. J'ai mis les liens ci-dessous! 

String jsonString = //your json String
Gson gson = new Gson();
Type typeOfList = new TypeToken<List<Map<String, Integer>>>() {}.getType();
List<Map<String, Integer>> list = gson.fromJson(jsonString, typeOfMap);

List<Click> clicks = new ArrayList<Click>();
for(int i = 0; i < list.size(); i++) {
    int x = list.get(i).get("x");
    int y = list.get(i).get("y");
    clicks.add(new Click(x, y));
}

( http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/com/google/gson/Gson.html ) ( http: // google -gson.googlecode.com/svn/tags/1.5/src/test/Java/com/google/gson/functional/MapTest.Java )

1
haley

Une autre option solide est Jackson il semble avoir un tutoriel assez solide. Je ne le connais pas bien, alors j'espère que cela aidera. 

L'idée principale est qu'il utilise un mappeur d'objets

ObjectMapper mapper = new ObjectMapper();
User user = mapper.readValue(new File("c:\\user.json"), User.class);

L'étape 4 devrait être votre meilleur pari, mais réalisez que vous voulez probablement autre chose que User.class

MODIFIER:

Si vous êtes assez enclin à utiliser Gson, peut-être qu'exploiter d'autres réponses similaires vous aidera. Cette question concerne la conversion de JSON en POJO (Plain Old Java Objects) et leur ressemblent un peu plus. Encore une fois, je ne les connais pas très bien et je peux essayer de répondre à quelques questions, mais j'espère que cela vous mènera là où vous devez aller.

Bonne codage! Laissez un commentaire si vous avez des questions.

0
Matt