Existe-t-il un moyen en Java / J2ME de convertir une chaîne, telle que:
{name:"MyNode", width:200, height:100}
à une représentation objet interne de la même chose, dans une ligne de code?
Parce que la méthode actuelle est trop fastidieuse:
Object n = create("new");
setString(p, "name", "MyNode");
setInteger(p, "width", 200);
setInteger(p, "height", 100);
Peut-être une bibliothèque JSON?
java
json
java-me
serialization
Le flash
la source
la source
{"name":"MyNode", "width":200, "height":100}
Réponses:
J'en ai utilisé quelques-uns et mon préféré est,
http://code.google.com/p/json-simple/
La bibliothèque est très petite, elle est donc parfaite pour J2ME.
Vous pouvez analyser JSON en objet Java en une seule ligne comme ceci,
la source
L'option la plus simple est Jackson :
Il existe d'autres bibliothèques tout aussi simples à utiliser (Gson a déjà été mentionné); mais certains choix sont plus laborieux, comme la bibliothèque org.json d'origine, qui vous oblige à créer un "JSONObject" intermédiaire même si vous n'en avez pas besoin.
la source
Object obj = new ObjectMapper().readValue("[1, 2, 3]", Object.class);
GSON est une bonne option pour convertir un objet java en objet json et vice versa.
C'est un outil fourni par google.
pour convertir json en objet java, utilisez:
fromJson(jsonObject,javaclassname.class)
pour convertir un objet java en objet json utiliser:
toJson(javaObject)
et le reste sera fait automatiquement
Pour plus d' informations et pour télécharger
la source
Vous pouvez le faire facilement avec Google GSON.
Supposons que vous ayez une classe appelée User avec les champs user, width et height et que vous souhaitiez convertir la chaîne json suivante en objet User.
{"name":"MyNode", "width":200, "height":100}
Vous pouvez facilement le faire, sans avoir à lancer (en gardant à l'esprit le commentaire de nimcap;)), avec le code suivant:
Où jsonString est la chaîne JSON ci-dessus.
Pour plus d'informations, consultez https://code.google.com/p/google-gson/
la source
Vous disposez de nombreux analyseurs JSON pour Java :
JSONObject.java
Un JSONObject est une collection non ordonnée de paires nom / valeur. Sa forme externe est une chaîne entourée d'accolades avec deux points entre les noms et les valeurs, et des virgules entre les valeurs et les noms. Le formulaire interne est un objet ayant les méthodes get () et opt () pour accéder aux valeurs par nom, et les méthodes put () pour ajouter ou remplacer des valeurs par nom. Les valeurs peuvent être de l'un des types suivants: Boolean, JSONArray, JSONObject, Number et String, ou l'objet JSONObject.NULL.
JSONArray.java
Un JSONArray est une séquence ordonnée de valeurs. Sa forme externe est une chaîne placée entre crochets avec des virgules entre les valeurs. Le formulaire interne est un objet ayant les méthodes get () et opt () pour accéder aux valeurs par index, et les méthodes put () pour ajouter ou remplacer des valeurs. Les valeurs peuvent être de l'un des types suivants: Boolean, JSONArray, JSONObject, Number et String, ou l'objet JSONObject.NULL.
JSONStringer.java
Un JSONStringer est un outil permettant de produire rapidement du texte JSON.
JSONWriter.java
Un JSONWriter est un outil permettant d'écrire rapidement du texte JSON dans des flux.
JSONTokener.java
Un JSONTokener prend une chaîne source et en extrait des caractères et des jetons. Il est utilisé par les constructeurs JSONObject et JSONArray pour analyser les chaînes source JSON.
JSONException.java
Une exception JSONException est lancée lorsqu'une erreur de syntaxe ou de procédure est détectée.
JSONString.java
Le JSONString est une interface qui permet aux classes d'implémenter leur sérialisation JSON.
la source
java
classes simples .Le site officiel JSON est l'endroit où vous devriez regarder. Il fournit diverses bibliothèques qui peuvent être utilisées avec Java, j'ai personnellement utilisé celle-ci, JSON-lib qui est une implémentation du travail dans le site, donc elle a exactement la même classe - méthodes, etc. dans cette page .
Si vous cliquez sur les liens html, vous pouvez trouver tout ce que vous voulez.
En bref:
pour créer un objet json et un tableau json, le code est:
o1, o2, peuvent être des types primitifs (long, int, booléen), des chaînes ou des tableaux.
Le processus inverse est assez simple, je veux dire la conversion d'une chaîne en objet / tableau json.
Pour être correctement analysé, il vous suffit de savoir si vous analysez un tableau ou un objet.
la source
Utilisez la bibliothèque google GSON pour cela
http://iandjava.blogspot.in/2014/01/java-object-to-json-and-json-to-java.html
la source
Comme beaucoup l'ont déjà dit, un moyen assez simple de le faire en utilisant JSON.simple comme ci-dessous
Et puis utilisez jsonObj pour traiter l'objet JSON. par exemple jsonObj.get ("nom");
Selon le lien ci-dessous, JSON.simple montre une efficacité constante pour les petits et grands fichiers JSON
http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/
la source
JSON IO est de loin le moyen le plus simple de convertir une chaîne JSON ou un flux d'entrée JSON en un objet Java
Chaîne en objet Java
Object obj = JsonReader.jsonToJava("[\"Hello, World\"]");
https://code.google.com/p/json-io/
la source
C'est une vieille question et json-simple ( https://code.google.com/p/json-simple/ ) pourrait être une bonne solution à ce moment-là, mais veuillez considérer que le projet ne semble pas être actif pendant un certain temps!
Je suggère le Gson qui est maintenant hébergé sur: https://github.com/google/gson
Si la performance est votre problème, vous pouvez jeter un œil à quelques benchmarks http://blog.takipi.com/the-ultimate-json-library-json-simple-vs-gson-vs-jackson-vs-json/ qui se comparent.
la source
En plus de www.json.org, vous pouvez également implémenter votre propre analyseur en utilisant javacc et en faisant correspondre votre grammaire / schéma personnel. Voir cette note sur mon blog: http://plindenbaum.blogspot.com/2008/07/parsing-json-with-javacc-my-notebook.html
la source
J'ai écrit une bibliothèque qui utilise json.org pour analyser JSON, mais elle créera en fait un proxy d'une interface pour vous. Le code / JAR se trouve sur code.google.com.
http://fixjures.googlecode.com/
Je ne sais pas si cela fonctionne sur J2ME. Puisqu'il utilise Java Reflection pour créer des proxys, je pense que cela ne fonctionnera pas. En outre, il a actuellement une forte dépendance à l'égard des collections Google que je souhaite supprimer et il est probablement trop lourd pour vos besoins, mais cela vous permet d'interagir avec vos données JSON de la manière que vous recherchez:
la source
Créez simplement un objet Json en java avec la chaîne Json suivante.
si ce qui précède est votre chaîne Json, créez simplement un objet Json avec.
la source
Jackson pour les gros fichiers, GSON pour les petits fichiers et JSON.simple pour gérer les deux.
la source