android - 将 JSONObject 转换为 ContentValues

标签 android json

我想将 JSONObject 转换为 ContentValue。我如何在不知道 JSONObject 中有哪些列的情况下执行此操作?

JSONObject 中的列与设备上 SQLite 数据库中的列相同,并且顺序相同。

我可以这样做

ContentValues values = new ContentValues();
values.put(TASK_NAME, json.getString("name"));
values.put(TASK_KEY_PROJECT, json.getString("project"));
values.put(TASK_KEY_CATEGORY, json.getString("category"));
values.put(TASK_KEY_TAG, json.getString("tag")); //TODO CATCH NO TAG EXCEPTION

但我想知道更好的方法 提前致谢

最佳答案

您可以使用 optString 或使用方法 has 检查。

例如:

values.put(TASK_KEY_TAG, json.optString("tag"));

optString 如果 key 不可用,则返回 null。或者

if (json.has("tag")) {
    values.put(TASK_KEY_TAG, json.optString("tag"));
}

关于android - 将 JSONObject 转换为 ContentValues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24557099/

相关文章:

javascript - 浅拷贝未在嵌套 JSON 对象 javascript 中更新

javascript - 如何循环 Alpha Vantage 时间戳

android - 如何在 SQLite 中查询等于今天的日期?

android - 尽管有投影,谷歌地图仍绘制正方形

Android - android 中 tableview 的自定义单元格

mysql - 更新数组中的 mysql json 字段

java - Gson获取类中的json变量

android - RxJava repeatWhen 在 Mockito 中不再调用

android - fragment 中的 Onbackpressed 在实现接口(interface)时不起作用

json - 大型 json 文件示例