Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/358.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何将JSON数组添加到Google应用程序数据存储中_Java_Json_Google App Engine - Fatal编程技术网

Java 如何将JSON数组添加到Google应用程序数据存储中

Java 如何将JSON数组添加到Google应用程序数据存储中,java,json,google-app-engine,Java,Json,Google App Engine,我需要一个解决方案来添加一个JSON数组来存储到google app数据存储中,我认为这在Python中是可能的,但我不熟悉这一点,我只需要Java代码和JSON布局的简单实现来将从Android accelemeter接收到的数据存储到数据存储中。如果有人能帮助我,那就太好了。如果您不需要为数据编制索引,只需将JSON数据作为文本字符串存储在数据存储中,标记为“未编制索引”。如果确实需要对其进行索引,则需要构建一个包含JSON数据重要属性的模型,并将值复制到自己身上。有关JSON实体映射的实现

我需要一个解决方案来添加一个JSON数组来存储到google app数据存储中,我认为这在Python中是可能的,但我不熟悉这一点,我只需要Java代码和JSON布局的简单实现来将从Android accelemeter接收到的数据存储到数据存储中。如果有人能帮助我,那就太好了。

如果您不需要为数据编制索引,只需将JSON数据作为文本字符串存储在数据存储中,标记为“未编制索引”。如果确实需要对其进行索引,则需要构建一个包含JSON数据重要属性的模型,并将值复制到自己身上。

有关JSON实体映射的实现,请参阅

 /**
 * 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()));
        }
    }
}
/**
*通过指定的json对象设置指定实体的属性。
*
*@param entity指定的实体
*@param jsonObject指定的json对象
*@抛出JSONException json异常
*/
公共静态void集合属性(最终实体,
最终JSONObject(JSONObject)
抛出JSONException{
@抑制警告(“未选中”)
final Iterator keys=jsonObject.keys();
while(keys.hasNext()){
最后一个字符串键=keys.next();
最终对象值=jsonObject.get(键);
如果(!GAE_SUPPORTED_TYPES.contains)(value.getClass())
&&!(Blob的值实例){
抛出新的RuntimeException(“不支持的类型[class=“+值”)。
Latke GAE存储库中的getClass().getName()+“];
}
if(字符串的值实例){
最终字符串值字符串=(字符串)值;
if(valueString.length()
>DataTypeUtils.MAX\u字符串\u属性\u长度){
最终文本文本=新文本(valueString);
entity.setProperty(键、文本);
}否则{
实体.setProperty(键、值);
}
}else if(值instanceof Number
||日期的值实例
||布尔值实例
||GAE\u支持的\u类型。包含(value.getClass()){
实体.setProperty(键、值);
}else if(Blob的值实例){
最终Blob Blob=(Blob)值;
entity.setProperty(键,
新建com.google.appengine.api.datastore.Blob(
getBytes());
}
}
}

RESTeasy在将JSON映射到Java类方面做得很好。Objectify非常适合将Java类映射到数据存储。数据存储StringProperty限制为500个字符。TextProperty最多为1 MB,对于较大的文件,您将需要一个blob。