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