Как добавить массив JSON в хранилище данных Google App - PullRequest
2 голосов
/ 23 ноября 2011

Мне нужно решение добавить массив JSON для хранения в хранилище данных приложения Google, я думаю, что это возможно в Python, но я не знаком с этим, мне нужна только простая реализация в коде Java и макет JSON для хранения полученных данных из и Android-акселерометр в хранилище данных. Будет хорошо, если кто-нибудь сможет мне помочь.

Ответы [ 2 ]

4 голосов
/ 23 ноября 2011

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

1 голос
/ 23 ноября 2011

См. здесь для реализации JSON <-> Entity mapping.

 /**
 * Sets the properties of the specified entity by the specified json object.
 *
 * @param entity the specified entity
 * @param jsonObject the specified json object
 * @throws JSONException json exception
 */
public static void setProperties(final Entity entity,
                                 final JSONObject jsonObject)
        throws JSONException {
    @SuppressWarnings("unchecked")
    final Iterator<String> keys = jsonObject.keys();
    while (keys.hasNext()) {
        final String key = keys.next();
        final Object value = jsonObject.get(key);

        if (!GAE_SUPPORTED_TYPES.contains(value.getClass())
            && !(value instanceof Blob)) {
            throw new RuntimeException("Unsupported type[class=" + value.
                    getClass().getName() + "] in Latke GAE repository");
        }

        if (value instanceof String) {
            final String valueString = (String) value;
            if (valueString.length()
                > DataTypeUtils.MAX_STRING_PROPERTY_LENGTH) {
                final Text text = new Text(valueString);

                entity.setProperty(key, text);
            } else {
                entity.setProperty(key, value);
            }
        } else if (value instanceof Number
                   || value instanceof Date
                   || value instanceof Boolean
                   || GAE_SUPPORTED_TYPES.contains(value.getClass())) {
            entity.setProperty(key, value);
        } else if (value instanceof Blob) {
            final Blob blob = (Blob) value;
            entity.setProperty(key,
                               new com.google.appengine.api.datastore.Blob(
                    blob.getBytes()));
        }
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...