Сопоставить значения между различными источниками данных - PullRequest
1 голос
/ 17 июня 2011

Есть ли шанс получить простой способ синхронизации данных, в данном случае контактов, между поставщиком контента Android и сервером на основе JSON?

Моя проблема в том, что Android использует курсоры и прочее, ис другой стороны у меня есть JSON-формат.Вторая проблема: у одного и того же значения теперь есть два разных имени, поэтому мне нужно своего рода отображение между значениями в двух разных источниках данных.

Мой первый подход состоял в определении класса «Пользователь».Где у меня были бы разные методы, чтобы заполнить его данными, и разные методы, чтобы вернуть данные.Проблема заключается в том, что при таком подходе мне приходится выполнять сопоставление между поставщиком контента Android и сервером JSON в каждом отдельном методе, например,

AndroidContact -> (Mapping) -> User-Object -> (Mapping) ->JSON-формат

JSON-формат -> (Mapping) -> - User-Object -> (Mapping) -> AndroidContact

Как видите, для всей связи мне нужно сделатьсопоставление по крайней мере четыре раза, что действительно является проблемой в заднице, потому что я синхронизирую ВСЕ данные, которые может иметь контакт, что довольно много.

Так что я ищу умный способ синхронизациимой андроид связывается с сервером JSON, не определяя весь материал сопоставления более одного раза.

Надеюсь, я смогу прояснить, что я ищу.Если не стесняйтесь спрашивать.

Приветствия L0rdAli3n

Ответы [ 2 ]

0 голосов
/ 15 ноября 2011

Вы можете использовать MatrixCursor для возврата данных, которые у вас есть, в формате xml или json.

MatrixCursor : Реализация изменяемого курсора, поддерживаемая массивом Objects.

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 });
}
0 голосов
/ 06 июля 2011

После другого дня поиска в сети существовавшего ранее решения моей проблемы (я не хотел изобретать колесо), я пришел к следующему решению:

Я добавил MappingContentProvider для хранения информации о сопоставлениии все эти методы, заполняющие пользовательский класс данными или возвращающие данные из него, теперь могут использовать его.

...