J'ai une chaîne au format json et je veux extraire certaines valeurs de ce json. Par exemple:extrait la valeur de json string en java
{"foo":"this is foo", "bar":{"nested_bar": "this is nested bar"} }
Un utilisateur peut vouloir imprimer soit foo
ou bar
, ou les deux.
À l'heure actuelle, j'ai une classe simple qui ne peut lire que flat json. Comment modifier le code suivant pour incorporer json imbriqué?
Une autre question est ce qui est un bon moyen de représenter les balises que je veux extraire comme en json plat? Je passais un tableau.
public class JsonParser {
public static String[] tagsToExtract;
public JsonParser(String[] tags){
tagsToExtract = tags;
}
public HashMap<String, Object> extractInformation(Text line) throws JSONException{
HashMap<String, Object> outputHash = new HashMap<String, Object>();
JSONObject jsn = new JSONObject(line.toString());
for (int i =0; i < tagsToExtract.length; i++){
outputHash.put(tagsToExtract[i],jsn.get(tagsToExtract[i].toString()));
}
return outputHash;
}
}
Avez-vous envisagé d'utiliser une bibliothèque d'analyse JSON comme, par exemple, Jackson? – fge
Oui, si vous allez sur json.org, il répertorie environ une douzaine de parseurs JSON pour Java. –