Джексон-JQ: Запуск команд jq от java - PullRequest
1 голос
/ 01 апреля 2020

Я пытаюсь использовать jackson-jq, чтобы удалить некоторые узлы из всех JSON файлов в каталоге, а затем объединить их в один JSON файл.

Мне удалось получить это работать в JQ, как показано ниже

//Cleanup
FILES=*.json
  for f in $FILES; do
    echo "Processing $f file..."
    cat $f | jq 'del(.precondition, .testFailureClassname, .testFailureMessage) >tempfile && mv tempfile $f
  done

//Merge
jq -s '.' *.json >"$basedir"/target/results.json

Но я не уверен, как добиться этого с помощью Jackson-JQ. Какие-либо указатели ?? Заранее спасибо.

1 Ответ

0 голосов
/ 02 апреля 2020

Глядя на Джексон-JQ Readme предположительно вы загружаете JAR

$ curl -LO https://repo1.maven.org/maven2/net/thisptr/jackson-jq-cli/1.0.0-preview.20191208/jackson-jq-cli-1.0.0-preview.20191208.jar

Убедитесь, что он работает

$ java -jar jackson-jq-cli-1.0.0-preview.20191208.jar --help
usage: jackson-jq [OPTIONS...] QUERY
 -c,--compact      compact instead of pretty-printed output
 -h,--help         print this message
    --jq <arg>     specify jq version
 -n,--null-input   use `null` as the single input value
 -r,--raw          output raw strings, not JSON texts

, а затем использовать java -jar jackson-jq-cli-1.0.0-preview.20191208.jar
где вы бы использовали jq, например

$ echo '{"foo":"bar"}' | java -jar jackson-jq-cli-1.0.0-preview.20191208.jar '.foo'
"bar"
...