如何从 JSON 运行 JSONiq 到 try.zorba.io
How to run JSONiq from JSON with try.zorba.io
我需要编写一个 JSONiq 表达式,仅列出成本至少为 3 的产品名称。这是我在 [=22= 中输入的 JSON 文件]XQuery 部分:
{ "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:
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 部分有问题吗?
以下选择适用于您链接到的站点:
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
原始查询可以稍微修改为(为了保留 FLWOR 表达式):
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 space 字符 (Unicode 2003) .必须删除此字符才能成功解析此 JSON。
我需要编写一个 JSONiq 表达式,仅列出成本至少为 3 的产品名称。这是我在 [=22= 中输入的 JSON 文件]XQuery 部分:
{ "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:
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 部分有问题吗?
以下选择适用于您链接到的站点:
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
原始查询可以稍微修改为(为了保留 FLWOR 表达式):
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 space 字符 (Unicode 2003) .必须删除此字符才能成功解析此 JSON。