У меня есть проект Android, где я использую некоторые данные из сохраненного JSON.Я использую его в нескольких местах для получения значений, но теперь мне также нужно получить имя ключа вместо значения.Возможно ли это как-то?Я использую библиотеку 'org.json' для анализа JSON.
Мой JSON:
{
"cookbook": {
"products": {
"factory1": {
"product": "product1",
"rate": 2,
},
"factory2": {
"product": "product2",
"rate": 14,
"requires": {
"money": 20,
"product3": 3,
"product4": 2
}
}
}
}
Как я уже сказал, у меня нет проблем с получением значений, но теперь яУ меня есть имя продукта в переменной, скажем, «product2», и мне нужно определить, какая фабрика производит этот продукт.Поэтому мне нужно получить return 'factory2'.
Я пытался:
mainCookbookJson = new JSONObject(loadJSONFromAsset(activity, "cookbook.json"));
JSONObject cookbookJson = mainCookbookJson.getJSONObject("cookbook");
JSONObject productsJson = cookbookJson.getJSONObject("products");
for(Iterator<String> iter = productsJson.keys(); iter.hasNext();) {
String key = iter.next();
if (productsJson.getJSONObject(key).getString("product").equals(product)) {
return productsJson.getString(key);
//return productsJson.getJSONObject(key).toString(); // Also tried
}
}
, но это возвращает весь объект, отформатированный в виде строки.
Спасибо залюбые предложения.