MonetDB文档说,MonetDB支持JSON,但我找不到任何示例。 当我尝试执行此查询在MonetDB客户端:如何在MonetDB中使用JSON
json.filter({ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}},'$')
我得到这个错误:语法错误,意想不到的IDENT在: “JSON”
MonetDB文档说,MonetDB支持JSON,但我找不到任何示例。 当我尝试执行此查询在MonetDB客户端:如何在MonetDB中使用JSON
json.filter({ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}},'$')
我得到这个错误:语法错误,意想不到的IDENT在: “JSON”
从https://www.monetdb.org/pipermail/users-list/2014-November/007700.html:
在MonetDB,JSON是列类型,所以你首先需要定义与类型JSON,像一列的表:
CREATE TABLE a (js JSON);
一旦你插入JSON文件到表中,你可以做一个查询:
SELECT json.filter(js, 'store') FROM a;
你有没有试图把单引号括起来的第一个参数?
以下适用于我。
select json.filter('{ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}}', '$');
结果是:
[{ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}}]
我也试过这样:
select json.filter('{ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}}', '$.store.bicycle.color');
结果是:
["red"]
要返回颜色的字符串:
select json.text(json.filter('{ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}}', '$.store.bicycle.color'));
...我得到:
red
如果我尝试:
select json.text(json.filter('{ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}}', '$.store.bicycle.price'));
...我回来的价格为一个字符串:
19.95
但我也可以把它作为一个数字:
select json.number(json.filter('{ "store": {
"bicycle": {
"color": "red",
"price": 19.95
}}}', '$.store.bicycle.price'));
谢谢,最重要的部分是:“从源头上构建它”,因为我使用的是win版本,不支持json。 – hjortron 2014-11-27 19:38:52
我可以使用JSON类型作为UDF输入参数吗?谢谢 – GBrian 2015-09-16 03:53:11