android - 如何从 JSON 文件中读取数组?
问题描述
我正在尝试从 JSON 读取数据。我将 Firebase 添加到我的 Android 应用程序中,一切正常,但我不明白如何读取数组字段。
例如,我需要获取"correctAnswers":["Var1","Var4"]
字段,但无法谷歌回答如何去做。
请解释。谢谢你。
我的 JSON 文件的一部分
{
"answA" : "Var1",
"answB" : "Var2",
"answC" : "Var3",
"answD" : "Var4",
"categoryId" : 1,
"correctAnswers":["Var1","Var4"],
"id" : 104,
}
我得到了光标
Cursor cursor = sqlLiteDataBaseInstance.rawQuery(String.format("SELECT * FROM Question WHERE CategoryID = %d ORDER BY RANDOM() LIMIT 30", category), null);
并且可以阅读answA, answB, answC, answD
使用
cursor.getString(cursor.getColumnIndex(String columnName))
和
categoryId, id using cursor.getInt(cursor.getColumnIndex(String columnName))
解决方案
检查这个。
private void readJson() {
try {
JSONObject jsonObject = new JSONObject("{\n" +
"\t\"answA\": \"Var1\",\n" +
"\t\"answB\": \"Var2\",\n" +
"\t\"answC\": \"Var3\",\n" +
"\t\"answD\": \"Var4\",\n" +
"\t\"categoryId\": 1,\n" +
"\t\"correctAnswers\": [\"Var1\", \"Var4\"],\n" +
"\t\"id\": 104\n" +
"}");
JSONArray jsonArray = jsonObject.getJSONArray("correctAnswers");
Log.e("Array Size is ", jsonArray.length() + "");
for (int i = 0; i < jsonArray.length(); i++) {
Log.e("Array Values", jsonArray.getString(i) + "");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
推荐阅读
- swift - 什么内存管理适合 UITableViewRowAction 闭包?
- regex - 文件路径的 Powershell 正则表达式
- python - 如何从“groupby”和“mean”函数绘制直方图
- c# - Session 只捕获列表中最后一个对象的数据
- csv - 为什么 Apache Calcite 为查询包含的所有表估计 100 行?
- php - 如何包含其他目录的 php 文件(位于后面的目录文件)的 php 文件?
- java - Is it dangerous to use ThreadLocal with ExecutorService?
- jdbc - 1亿条记录的jdbc/jdbcio apache Beam性能比较
- haskell - 根据另一个列表过滤haskell列表
- iis - 如何将 IIS 域重写为子域?