所以我有以下json字符串
private void addItemInRecyclerViewAndPlaySound() {
soundToBePlayed++;
adapter.addItem(allItems.get(soundToBePlayed));
recyclerView.scrollToPosition(adapter.getItemCount() - 1);
Integer soundId = soundList.get(soundToBePlayed);
MediaPlayer mp = MediaPlayer.create(this, soundId);
if (mp.isPlaying()) {
mp.stop();
mp.release();
mp = MediaPlayer.create(this, soundId);
mp.setOnCompletionListener(new MediaPlayer.OnCompletionListener() {
public void onCompletion(MediaPlayer mp) {
// Call this function again to add next item
// and play the next sound at the same time
if(soundToBePlayed < allItems.size() - 1)
addItemInRecyclerViewAndPlaySound();
}
});
}
mp.start();
}
我希望将其读取并传递给类的新实例,但是当我不知道名称时,我看不到如何读取它。
我试图将其读取为无法正常工作的数组,并尝试通过名称读取它,但这对我来说不是一个合适的解决方案。
我需要它,以便每当string关键字更改时它仍然可以获取它,例如,当“ Ice”更改为“ Gas”时,我不必手动告诉它搜索气体,我想要一个简单的解决方案来读取所有内容 值名称+双重值 的组成。
答案 0 :(得分:3)
根据文档,JSONObject有一些适合您情况的方法,它们是:
keys()
keySet()
names()
getNames()
它们都返回JSONObject中字段的所有名称,因此您可以采用“ composition”的JSONObject并使用这些方法之一获取字段的名称,然后使用这些键获取所有值。
答案 1 :(得分:-1)
在org.json的GitHub Page上,README.md中有一个很大的胖列表,其中包含该API的所有可能用法。
其中一个读为:
JSONObject.java:JSONObject可以解析String或JSONTokener中的文本以生成类似地图的对象。
完全符合您的需求