У меня есть строка в json формате, и я хочу извлечь определенные значения из этого json. Например:извлечь значение из json string в java
{"foo":"this is foo", "bar":{"nested_bar": "this is nested bar"} }
пользователь может понадобиться напечатать либо foo
или bar
или обоих.
Прямо сейчас, у меня есть простой класс, который может читать только плоский json.
Как изменить следующий код, чтобы включить вложенный json?
Другой вопрос - что такое хороший способ представить теги, которые я хочу извлечь, как в плоском json? Я проходил массив.
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;
}
}
Рассматривали ли вы использование библиотеки разбора JSON, такой как, например, Джексон? – fge
Да, если вы перейдете на json.org, в нем перечислены десятки парсеров JSON для Java. –