在Couchbase中作为二进制对象插入的JSON文档

在Couchbase中作为二进制对象插入的JSON文档,json,couchbase,couchbase-java-api,Json,Couchbase,Couchbase Java Api,我试图将java POJO插入couchbase存储,而cas调用下方的json如下所示- { "key": "sampleKey", "myMap": { "Messages": [ { "field": "f1", "label": "l1" }, { "field": "f2", "label": "l2" },

我试图将java POJO插入couchbase存储,而
cas
调用下方的json如下所示-

{
"key": "sampleKey",
"myMap": {
    "Messages": [
        {
            "field": "f1",
            "label": "l1"
        },
        {
            "field": "f2",
            "label": "l2"
        },
        {
            "field": "f3",
            "label": "l3"
        },
        {
            "field": "f4",
            "label": "l4"
        }
    ],
    "Orders": [
        {
            "field": "f1",
            "label": "l1"
        },
        {
            "field": "f2",
            "label": "l2"
        },
        {
            "field": "f3",
            "label": "l3"
        },
        {
            "field": "f4",
            "label": "l4"
        },
        {
            "field": "f5",
            "label": "l5"
        }
        ]
    }
}
我已经验证了这是一个有效的JSON,并且它仍然作为二进制对象插入。当我试图通过couchbase GUI查找此文档时,它显示了base64编码的字符串。不过,还有一些其他文件可以。我想知道这种情况是否只发生在
cas
方法上,而不是
set

相关java代码如下所示:

String myJson = objectMapper.writeValueAsString(cacheObject);
CASResponse response = couchbaseClient.cas(cacheObject.getKey(), casValue.getCas(), myJson, PersistTo.MASTER);

// Java pojo
public class CacheObject
{
    private String key;
    private Map<String, List<FieldLabel>> myMap = new HashMap<String, List<FieldLabel>>();

    // setters and getters
}
String myJson=objectMapper.writeValueAsString(cacheObject);
CASResponse=couchbaseClient.cas(cacheObject.getKey(),casValue.getCas(),myJson,PersistTo.MASTER);
//爪哇波乔
公共类缓存对象
{
私钥;
私有映射myMap=newhashmap();
//二传手和接球手
}
任何关于为什么会发生这种情况的建议都将不胜感激

更新1:我使用的是Couchbase java客户端版本1.4.4,服务器版本2.5

Update2:我不认为这与我的代码或json有关,我尝试用一个大的json文档(一个有效的文档)替换我的json,我在couchbase GUI中看到了相同的结果。我认为这是因为文档的大小可能超过2.5KB。我在上面粘贴的json删除了实际字段和标签,它们是稍长的字符串。
奇怪的是,当我修改文档时,960个字符以下的文档通常显示为Json,但是略高于2.5KB的文档将存储为二进制。

如果文档大小大于2.5KB,则该文档将无法在控制台中编辑,并且可以在名为documents.js的文件中更改该值。

如果文档大小大于2.5KB,则该文档将无法在控制台中编辑,并且可以在名为documents.js的文件中更改该值documents.js

你能在帖子中添加你的代码和你使用的SDK版本吗?拥有JSON没有java代码有多大帮助。@Kirk在问题中添加了详细信息。在管理控制台中,超过一定大小的JSON文档显示为base64编码的blob。你能用Java SDK获取文档来验证json是否返回给你吗?@mikewied在这种情况下,消息不应该是其他消息吗?我在GUI上看到的消息是“不允许编辑二进制对象”。你能在帖子中添加你的代码和你使用的SDK版本吗?拥有JSON没有java代码有多大帮助。@Kirk在问题中添加了详细信息。在管理控制台中,超过一定大小的JSON文档显示为base64编码的blob。你能用Java SDK获取文档来验证json是否返回给你吗?@mikewied在这种情况下,消息不应该是其他消息吗?我在GUI上看到的消息是“不允许编辑二进制对象”。