Home > Software engineering >  Extract repositories section from composer.json using jq (get subtree from JSON, keeping the path in
Extract repositories section from composer.json using jq (get subtree from JSON, keeping the path in

Time:07-28

Is there a simple way to extract a sub tree from JSON, keeping the path?

I am using

cat composer.json | jq .repositories > /tmp/composer.json

But this would miss the repositories node it self.

How can I filter a composer.json to include only certain sub trees?

CodePudding user response:

Given an object, .repositories fetches the content of a field called repositories. To wrap that content inside another object under a field named again repositories, create that object with such field and add the content using {repositories: .repositories}. As this pattern is so common, there is a shorthand for it: {repositories}.

jq '{repositories}' composer.json

To "extract" more than just one field in the same object, separate the field names with commas: {x,y,z}. To "extract" more than one field, each in its own object, separate the objects with commas: {x},{y},{z}.

  • Related