映射不同数据源之间的值

时间:2011-06-16 21:22:14

标签: android json contacts contactscontract

有没有机会在android contentprovider和基于JSON的服务器之间轻松地同步数据(在本例中是联系人)?

我的问题是,android使用游标和东西,另一方面我有JSON格式。第二个问题:同一个值现在有两个不同的名称,所以我需要在两个不同数据源中的值之间进行一种映射。

我的第一个方法是定义一个“用户”类。我将有不同的方法来填充数据和不同的方法来获取数据。问题是,通过这种方法,我必须在每个方法中进行android contentprovider和JSON服务器之间的映射,例如。

AndroidContact->(映射) - >用户-对象 - >(映射) - > JSON格式的

JSON-格式 - >(映射) - > - 用户-对象 - >(映射) - > AndroidContact

正如你所看到的,对于整个沟通,我需要至少进行四次映射,这真是一个痛苦的屁股,因为我正在同步一个联系人可以拥有的所有信息,这是非常多的。 / p>

所以我正在寻找一种聪明的方法来将我的Android联系人与JSON服务器同步,而不是多次定义整个映射内容。

希望我能说清楚,我正在寻找什么。如果没有随意问。

干杯L0rdAli3n

2 个答案:

答案 0 :(得分:0)

又过了一天,在网上搜索我问题的预先存在的解决方案(我不想重新发明轮子),我提出了以下解决方案:

我添加了一个MappingContentProvider来保存映射信息,所有那些用数据填充User-Class或从中获取数据的方法现在都可以使用它。

答案 1 :(得分:0)

您可以使用MatrixCursor返回xml或json格式的数据。

MatrixCursor:由对象数组支持的可变游标实现。

final MatrixCursor cursor = new MatrixCursor(SEARCH_COLUMN_NAMES);              
for (OpenSearchHandler.Result result : results) {                       
     cursor.addRow(new Object[] { result.id, result.title, result.description, result.url });
}