我有一个Web服务,在成功验证后返回用户的配置文件。该配置文件采用JSON格式,如下所示:
{
"first_name" : "John",
"last_name" : "Doe",
"interests: : ["Science","Sports"]
}
如何使用ContentProvider
将其保留在数据库中?
ContentValues
没有任何处理多值属性的规定。我目前的实现如下:
@Override
public Uri insert(Uri uri, ContentValues values){
switch(matcher.match(uri)){
case NEW_PROFILE:
break;
default:
return null;
}
ProfileDatabaseHelper helper = new ProfileDatabaseHelper();
// delete the existing profile first
helper.deleteUserProfile();
// then add a new profile
long id = helper.addUserProfile( values );
if( id > -1 ){
Uri insertedId = ContentUris.withAppendedId(CONTENT_URI,id);
getContext().getContentResolver().notifyChange(insertedId,null);
return insertedId;
}else{
return null;
}
}
答案 0 :(得分:1)
创建table
以使用列_id
和interest
存储兴趣
然后创建另一个表来存储带有兴趣的个人资料的映射_id
,profile_id
和interest_id
为每个表创建ContentUri
并相应地插入。