La conversion de JsonNode à java tableau
Je suis en train de Jouer framewrok 2 avec websocket et JsonNode . l'extrémité avant est relié à la pièce-cadre backend par l'utilisation de websocket. J'ai converti un tableau javascript dans un json nœud et l'a envoyé à l'arrière-plan par l'utilisation de la webscoket connexion.
Maintenant mon problème est de savoir comment puis-je convertir l'objet json dans un tableau java ou de toute structure appropriée de sorte que je peux manipuler les données.
c'est l'objet json, j'ai créé
var myjeson = {"x":arrayX,"y":arrayY} ;
c'est le tableau qui est remplie de façon dynamique
function pixelCount ()
{ arrayX[counter] = xcoordinate;
arrayY[counter] = ycoordinate;
socket.send(" from array X,Y "+arrayX[counter]+ " " +arrayY[counter]);
++counter;
}
le code ci-dessous envoie les données
$('button.send').click(function() {
sock.send(JSON.stringify(myjeson));
sur le côté serveur, j'ai le code suivant
public static WebSocket<JsonNode> givenIn() {
return new WebSocket<JsonNode>() {
//called when the websocket is established
public void onReady(WebSocket.In<JsonNode> in, WebSocket.Out<JsonNode> out) {
//register a callback for processing instream events
in.onMessage(new Callback<JsonNode>() {
public void invoke(JsonNode event) {
Logger.info(event.toString());
}
lorsque je vérifie le journal le message est remis :
ci-dessous, c'est le journal d'info
[info] demande -
{"x":
[78.72727298736572,79.72727298736572,82.72727298736572,
7298736572,93.72727298736572,83.72727298736572132.72727298736572],
"y":
[82.6363639831543,82.6363639831543,63.54545593261719,63.54545593261719,64.545455932
61719,65.54545593261719,70.54545593261719,189.5454559326172,188.5454559326172]}
Maintenant, je tiens à placer ces données dans un tableau afin que je puisse y accéder.
toutes suggestions seront appréciées.une autre suggestion est également la bienvenue.
OriginalL'auteur faisal abdulai | 2012-07-18
Vous devez vous connecter pour publier un commentaire.
La réponse est la plupart du temps dans le Jackson documentation et la tutoriel;
vous avez plusieurs façons de les transformer en JsonNode dans les données utiles.
Si vous savez à l'avance la structure des données, vous pouvez utiliser le La Liaison De Données approche: le "plein" de liaison de rendre une Classe correspondant à tous les champs); Pour une approche moins structurée de la "brute" de liaison permettent d'utiliser des objets génériques.
Sinon le Modèle D'Arbre approche doit travailler pour vous; l'exemple que vous trouverez dans la page du lien correspond assez bien à votre cas d'utilisation.
S'il vous plaît essayer d'exemple, alors si vous avez des questions plus spécifiques revenir avec l'exacte pratique ou phylosophical questions!
vous êtes les bienvenus 🙂 Si ma réponse vous a été utile n'oubliez pas de voter en haut / en chercher la bonne réponse. Si vous avez utile de commentaires que vous souhaitez partager, vous pouvez toujours voter de ma réponse, mais ajouter votre propre réponse.
Si vous êtes à la recherche pour le code de l'échantillon, voici la réponse stackoverflow.com/a/35599623/2369266
Downvote pour passer beaucoup de liens et pas de solution rapide.
new ObjectMapper().convertValue(jsonNode, ArrayList.class)
ajouté ça comme une réponse maintenant.
OriginalL'auteur Stefano
Déplacement de mon commentaire pour une réponse, comme il a obtenu upvoted beaucoup.
Cela devrait faire ce que l'OP nécessaires:
new ObjectMapper().convertValue(jsonNode, ArrayList.class)
OriginalL'auteur Alex Burdusel
Une façon rapide de le faire à l'aide de l'arbre-modèle... convertir la chaîne JSON dans une arborescence de JsonNode:
Puis d'en extraire les nœuds enfants et de les convertir dans les listes:
Un léger plus, mais défendable meilleure façon de le faire est de définir une classe représentant la structure JSON que vous attendez:
Puis désérialisé directement comme suit:
OriginalL'auteur DanJ
"... comment puis-je convertir l'objet json dans un tableau java"
Le truc, c'est d'abord de rendre l'Itérateur objet à l'aide d'éléments "()" méthode, puis à l'aide de Goyave "flux" méthode d'obtenir le flux. Une fois que vous avez le stream, vous pouvez faire toutes sortes d'opérations de matrice(par exemple, des filtres, carte) pour consommer vos données.
OriginalL'auteur Wildhammer
Réponse rapide de la Modèle d'Arbre approche mentionné par Stefano dans l'acceptation réponse:
OriginalL'auteur ZhaoGang