gpt4 book ai didi

json - 使用 crate 的 HTTP API 插入对象数组 : error 4003

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:11 24 4
gpt4 key购买 nike

我正在尝试使用 Crate 的 2.1.8 HTTP 端点插入一行,但它系统地失败并出现错误 4003:我的表包含一个对象数组列,它失败并显示错误 4003:“SQLActionException[ColumnValidationException: Validation failed for arr: '[{\“t\“:1}, {\“z\“:\“foo\“}]' 无法转换为类型 object_array]”

这是表的创建:如果不存在则创建表 “doc”.“test” ( “arr”数组(对象(动态)), “姓名”STRING)

现在这是我的 json :

{“stmt”:“插入\“test\”(\“name\“,\“arr\“)值(?,?)“,“args”:[“test”,“[{\“t\“:1}, {\“z\“:\“foo\“}]“]}

我发布请求的命令:wget --header “Content-Type: application/json” --post-file query_test.json -O - ’ http://localhost:4200/_sql?types&error_trace=true '

结果是:4003:“SQLActionException[ColumnValidationException:arr 的验证失败:'[{\“t\“:1}, {\“z\“:\“foo\“}]' 无法转换为类型 object_array]”

如果我从 Web 控制台运行它:INSERT INTO “test” (“name”, “arr”) VALUES ('test', [{“t”=1}, {“z”='foo'} ]);它工作正常......知道我做错了什么吗?

最佳答案

只需删除数组参数值周围的引号,不要像这样转义数组中的引号:

{"stmt":"INSERT INTO \"test\" (\"name\",\"arr\") VALUES (?,?)", "args":["test", [{"t":1}, {"z":"foo"}]]}

否则它是一个 JSON 字符串值而不是一个数组,因此 CrateDB 会将其解释为一个字符串。

关于json - 使用 crate 的 HTTP API 插入对象数组 : error 4003,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46866555/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com