Usar try
ou ?
no RHS do operador |=
remove o caminho que está sendo atualizado, mesmo se a expressão de atualização funcionar corretamente sem qualquer tratamento de erro.
Estou usando jq-1.6rc1-1-g61edf3f
Programa de exemplo:
{"number":"1234"}|(.number|=23),(.number|=23?)
Saída esperada:
{
"number": 23
}
{
"number": 23
}
Produção real:
{
"number": 23
}
{}
jq 1.5 se comporta conforme o esperado.
Obrigado pelo relatório.
Este problema ainda está presente na versão estável jq-1.6
.
Tentei os seguintes casos de teste:
{"price": "$23,000"} | .price |= (try 2 catch null)
{"price": null} # expected 2
A saída está correta se o operador de atualização ou try-catch for removido:
{"price": "$23,000"} | . + {price: (try 2 catch null)}
{ "price": 2}
{"price": "$23,000"} | .price |= 2
{ "price": 2}
Jq-1.5 funciona conforme o esperado. Existe alguma atualização sobre este problema? Está relacionado à mudança documentada de comportamento do operador de atualização?
Corrigido por @wtlangford com e74eab8.
Comentários muito úteis
Este problema ainda está presente na versão estável
jq-1.6
.Tentei os seguintes casos de teste:
{"price": "$23,000"} | .price |= (try 2 catch null)
{"price": null} # expected 2
A saída está correta se o operador de atualização ou try-catch for removido:
{"price": "$23,000"} | . + {price: (try 2 catch null)}
{ "price": 2}
{"price": "$23,000"} | .price |= 2
{ "price": 2}
Jq-1.5 funciona conforme o esperado. Existe alguma atualização sobre este problema? Está relacionado à mudança documentada de comportamento do operador de atualização?