调用document.putProperties(map)时出现异常-Android?

调用document.putProperties(map)时出现异常-Android?,android,json,gson,couchbase,couchbase-lite,Android,Json,Gson,Couchbase,Couchbase Lite,我试图在CouchbaseLite中保存一个新文档,但面对这个问题,出现了异常 com.couchbase.lite.CouchbaseLiteException 异常消息: com.couchbase.lite.CouchbaseLiteException com.couchbase.lite.CouchbaseLiteException null [1462915328, 451, 1462915272, 5, 1463020336, 137, 1463020280, 9, 1462744

我试图在CouchbaseLite中保存一个新文档,但面对这个问题,出现了异常

com.couchbase.lite.CouchbaseLiteException
异常消息:

com.couchbase.lite.CouchbaseLiteException
com.couchbase.lite.CouchbaseLiteException
null
[1462915328, 451, 1462915272, 5, 1463020336, 137, 1463020280, 9, 1462744624, 39,        1462943280, 4, 1463283568, 58, 1463284808, 9, 1459791184, 28, 1463191704, 0, 1463287160, 0, 1463294584, 8, 1463285984, 2, 1463298952, 2, 1461828864, 24, 1459658792, 6, 1461922408, 22, 1459660472, 15, 1461916072, 3, 1461898944, 8, 1459489944, 18, 1459609664, 2, 1459600392, 2, 1459600456, 4, 1460186072, 84, 1460049056, 48, 1459080768, 0, 1459081896, 17, 1460208056, 11, 1460002968, 66, 1459100640, 0]
null
Status: 400
[]
Map<String, Object> map = new HashMap<String, Object>();
    map = (Map<String, Object>) gson.fromJson(json, map.getClass());
    //map.put("_id", UUID.randomUUID().toString());

    Document document = mDatabaseLocal.createDocument();

    try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }
虽然这个例外并不清楚背后发生了什么,但我不知道该做什么,该从中解读什么

这是我的代码:

com.couchbase.lite.CouchbaseLiteException
com.couchbase.lite.CouchbaseLiteException
null
[1462915328, 451, 1462915272, 5, 1463020336, 137, 1463020280, 9, 1462744624, 39,        1462943280, 4, 1463283568, 58, 1463284808, 9, 1459791184, 28, 1463191704, 0, 1463287160, 0, 1463294584, 8, 1463285984, 2, 1463298952, 2, 1461828864, 24, 1459658792, 6, 1461922408, 22, 1459660472, 15, 1461916072, 3, 1461898944, 8, 1459489944, 18, 1459609664, 2, 1459600392, 2, 1459600456, 4, 1460186072, 84, 1460049056, 48, 1459080768, 0, 1459081896, 17, 1460208056, 11, 1460002968, 66, 1459100640, 0]
null
Status: 400
[]
Map<String, Object> map = new HashMap<String, Object>();
    map = (Map<String, Object>) gson.fromJson(json, map.getClass());
    //map.put("_id", UUID.randomUUID().toString());

    Document document = mDatabaseLocal.createDocument();

    try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }
Map Map=newhashmap();
map=(map)gson.fromJson(json,map.getClass());
//map.put(“_id”,UUID.randomuid().toString());
Document Document=mDatabaseLocal.createDocument();
试一试{
文件、属性(地图);
}捕获(CouchBaselite异常){
e、 printStackTrace();
}
对此做了大量研究后:

我发现地图中不应该有任何键以下划线字符开头的属性,因为它是为CouchbaseLite保留的

CouchbaseLite当前没有为此提供适当的异常消息,因此您将被卡住。你需要注意的唯一一件事是不要在地图中包含任何这样的密钥

比如,如果类(obj)中有_id和_rev字段,则需要删除它们

map.remove("_id");
map.remove("_rev");
致电前:

try {
        document.putProperties(map);
    } catch (CouchbaseLiteException e) {
        e.printStackTrace();
    }

没错,u是特殊成员:它们来自meta(字典中以“u”开头的任何键,例如“_id”和“_rev”,都包含CouchbaseLite元数据)。但就建议删除它们而言,与putProperties文档相反:properties字典必须有一个ID与当前版本匹配的“_rev”属性(如果它是此文档的.properties属性的修改副本,则会如此)。不清楚的是新文档应该是什么(currentRevision为空)