gpt4 book ai didi

jq 在应该抛出错误时接受无效的 json 输入

转载 作者:行者123 更新时间:2023-12-04 01:14:43 28 4
gpt4 key购买 nike

我在验证 json 字符串时遇到问题。我正在使用下面的代码

if jq -e . >/dev/null 2>&1 <<<"$json_string"; then
echo "Parsed JSON successfully and got something other than false/null"
else
echo "Failed to parse JSON, or got false/null"
fi

这不适用于 json_string={"fruit":{"name":"app。这仍然显示Parsed JSON successfully and got something other than false/null json 字符串不完整。

最佳答案

显然这是 jq-1.5 中的问题之一。未终止的对象/数组,没有相应的结束字符,被视为有效对象并被解析器接受。可以在 jq-1.5 中重现,但在 jq-1.6

中修复

jq-1.6

jq -e . <<< '{"fruit":{"name":"app'
parse error: Unfinished string at EOF at line 2, column 0
echo $?
4

下面的最小可重现示例,在 1.6 中再次处理得很好,但在 1.5 中不会引发错误

jq -e . <<< '{'
parse error: Unfinished JSON term at EOF at line 2, column 0
jq -e . <<< '['
parse error: Unfinished JSON term at EOF at line 2, column 0

建议升级到 jq-1.6 以使其正常工作!

关于jq 在应该抛出错误时接受无效的 json 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63739082/

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