Comment filtrer les jsonlines invalides avec jq

Lors de l’utilisation de données jsonlines avec jq, les lignes invalides peuvent causer des erreurs d’analyse, par ex.

e.g
jq: parse error: Expected separator between values at line 61755, column 1954

Pour filtrer les lignes invalides, vous pouvez utiliser la commande suivante :

filter_invalid_jsonlines.sh
jq -R 'fromjson?'

Ceci laissera passer les lignes JSON valides et retournera null pour les invalides. Vous pouvez ensuite filtrer les valeurs null en utilisant select. La commande suivante doit gérer correctement les valeurs null, mais elle ne verra aucune ligne invalide.

Exemple d’utilisation

filter_and_process_jsonlines.sh
cat data.json | jq -R 'fromjson?' | jq -c '{name: .node?.name?}'

Check out similar posts by category: JSON