【发布时间】:2014-08-04 02:47:19
【问题描述】:
我在资源数据存储中定义了一个 JSON 类型的名为“value”的字段(以及其他一些字段)。如果我使用简单值或非空数组运行 upsert,一切正常:
POST http://host/api/3/action/datastore_upsert
{
"resource_id": "...",
"records": [
{ "value": [ "1", "2" ] }
],
"method": "insert",
"force": "True"
}
POST http://host/api/3/action/datastore_upsert
{
"resource_id": "...",
"records": [
{ "value": "23" }
],
"method": "insert",
"force": "True"
}
但是,如果我使用一个空数组
POST http://host/api/3/action/datastore_upsert
{
"resource_id": "...",
"records": [
{ "value": [ ] }
],
"method": "insert",
"force": "True"
}
我收到以下错误:
{
...
"success": false,
"error": {
"info": {
"orig": [
"malformed record literal: \"{}\"\nLINE 2: VALUES (NULL, NULL, NULL, NULL, '{}', NULL, to_t...\n ^\nDETAIL: Missing left parenthesis.\n"
]
},
"__type": "Validation Error",
"data": "(DataError) malformed record literal: \"{}\"\nLINE 2: VALUES (NULL, NULL, NULL, NULL, '{}', NULL, to_t...\n ^\nDETAIL: Missing left parenthesis.\n"
}
}
鉴于[ ] 是 JSON 中的有效元素,我想知道为什么会发生此错误。这是 CKAN 数据存储 API 中的已知问题/错误吗?
【问题讨论】:
标签: arrays json datastore ckan