我想将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
但我想知道更好的方法 提前谢谢
答案 0 :(得分:1)
您可以使用optString
或查看方法has
。
例如:
values.put(TASK_KEY_TAG, json.optString("tag"));
如果密钥不可用, optString
将返回null。或
if (json.has("tag")) {
values.put(TASK_KEY_TAG, json.optString("tag"));
}