2014-07-03 100 views
2

我想将JSONObject转换为ContentValue。我怎么能不知道我在JSONObject中有哪些列?将JSONObject转换为ContentValues

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

感谢你既可以使用optString或与方法has检查。

例如:

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

optString,则返回null关键是不可用的。或者

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