首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Hazelcast IMDG json过滤

Hazelcast IMDG json过滤
EN

Stack Overflow用户
提问于 2021-03-17 13:17:28
回答 1查看 33关注 0票数 0

我试图过滤数组中的json对象,但是我得到了无效的输出。

代码语言:javascript
复制
HazelcastInstance hazelCast = Hazelcast.newHazelcastInstance();
        IMap<String, HazelcastJsonValue> departments = hazelCast.getMap("deps");
        departments.put("1",
                new HazelcastJsonValue("{\r\n"
                        + "    \"departmentId\": 1,\r\n"
                        + "    \"room\": \"alpha\",\r\n"
                        + "    \"people\": [\r\n"
                        + "        {\r\n"
                        + "            \"name\": \"Peter\",\r\n"
                        + "            \"age\": 26,\r\n"
                        + "            \"salary\": 50000\r\n"
                        + "        },\r\n"
                        + "        {\r\n"
                        + "            \"name\": \"Jonah\",\r\n"
                        + "            \"age\": 50,\r\n"
                        + "            \"salary\": 140000\r\n"
                        + "        }\r\n"
                        + "    ]\r\n"
                        + "}"));

        Collection<HazelcastJsonValue> departmentWithPeter = departments.values(new SqlPredicate("people[any].name='Peter'"));
        System.err.println(departmentWithPeter.toString());

预期输出:-

代码语言:javascript
复制
{
    "departmentId": 1,
    "room": "alpha",
    "people": [
        {
            "name": "Peter",
            "age": 26,
            "salary": 50000
        }
    ]
}

这里的问题是什么。还有没有其他函数支持json过滤。

EN

回答 1

Stack Overflow用户

发布于 2021-03-17 16:55:32

我认为你得到的输出是正确的。您的查询是:“查找包含任何名为‘Peter’的人员的所有部门”。因此,您基本上可以查询具有该条件的部门。

我认为您不能以如此简单的方式过滤JSON的内部结构。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66667350

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档