首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用JSONiq从JSON运行try.zorba.io

如何使用JSONiq从JSON运行try.zorba.io
EN

Stack Overflow用户
提问于 2019-03-15 11:50:03
回答 2查看 464关注 0票数 1

我需要编写一个JSONiq表达式,它只列出至少花费3英镑的产品名称。这是我在XQuery部分输入的JSON文件:

代码语言:javascript
复制
{ "supermarket_visit":{
        "date":"08032019",
        "bought":[
            "item",{
                "type":"confectionary",
                "item_name":"Kit_Kat",
                "number": 3,
                "individual_price": 3.5
                },
            "item",{
                "type":"drinks",
                "item_name":"Coca_Cola",
                "number": 2,
                "individual_price": 3
                },
            "item",{
                "type":"fruits",
                "item_name":"apples",
                "number": "some"
                }
            ], 
"next_visit":[
            "item",{
                "type":"stationary",
                "item_name":"A4_paper",
                "number": 1
                },
            "item",{
                "type":"stationary",
                "item_name":"pen",
                "number": 2
                }
            ]
        }
}

这是我的JSONiq Xquery JSONiq命令,我不知道在哪里输入try.zorba.io

代码语言:javascript
复制
let $x := find("supermarket_visit")
for $x in $supermarket.bought let $i := $x.item
where $i.individual_price <=3
return $i.item_name

我在try.zorba.io中遇到了许多错误,我对JSONiq和JSON非常陌生。我的JSON或JSONiq部件有问题吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-15 12:26:37

在您链接到的站点上,下列选择对我有效:

代码语言:javascript
复制
jsoniq version "1.0";
{ "supermarket_visit":{
        "date":"08032019",
        "bought":[
            "item",{
                "type":"confectionary",
                "item_name":"Kit_Kat",
                "number": 3,
                "individual_price": 3.5
                },
            "item",{
                "type":"drinks",
                "item_name":"Coca_Cola",
                "number": 2,
                "individual_price": 3
                },
            "item",{
                "type":"fruits",
                "item_name":"apples",
                "number": "some"
                }
            ],
"next_visit":[
            "item",{
                "type":"stationary",
                "item_name":"A4_paper",
                "number": 1
                },
            "item",{
                "type":"stationary",
                "item_name":"pen",
                "number": 2
                }
            ]
        }
}.supermarket_visit.bought()[$$ instance of object and $$.individual_price le 3].item_name
票数 2
EN

Stack Overflow用户

发布于 2019-03-15 14:01:10

可以将原始查询稍微修改为(为了保持FLWOR表达式):

代码语言:javascript
复制
jsoniq version "1.0";

let $document := { (: put the document here :) }
for $x in $document.supermarket_visit.bought[]
where $x instance of object and $x.individual_price le 3
return $x.item_name

请注意,try.zorba.io是Zorba (2.9)的旧版本,没有实现最新的、稳定的JSONiq版本。这就是为什么必须在这个特定页面上使用()而不是[]。如果您下载了Zorba的最新版本,那么上面的查询应该可以工作。

此外,问题中提供的原始文档不是格式良好的JSON,因为它在"next_visit“行上包含一个特殊的em空间字符(Unicode 2003)。为了成功地解析这个JSON,必须删除这个字符。

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

https://stackoverflow.com/questions/55181991

复制
相关文章

相似问题

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