将JSONObject转换为ContentValues

时间:2014-07-03 14:56:59

标签: 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

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

1 个答案:

答案 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"));
}