diff --git a/README.md b/README.md index 2ca60ad..c1a84c2 100644 --- a/README.md +++ b/README.md @@ -10,7 +10,7 @@ pairing with smart people at Hashrocket. For a steady stream of TILs, [sign up for my newsletter](https://crafty-builder-6996.ck.page/e169c61186). -_1286 TILs and counting..._ +_1287 TILs and counting..._ --- @@ -485,6 +485,7 @@ _1286 TILs and counting..._ ### jq +- [Count The Number Of Things In A JSON File](jq/count-the-number-of-things-in-a-json-file.md) - [Extract A List Of Values](jq/extract-a-list-of-values.md) - [Find All Objects With A Matching Key Value Pair](jq/find-all-objects-with-a-matching-key-value-pair.md) - [Reduce Object To Just Entries Of A Specific Type](jq/reduce-object-to-just-entries-of-a-specific-type.md) diff --git a/jq/count-the-number-of-things-in-a-json-file.md b/jq/count-the-number-of-things-in-a-json-file.md new file mode 100644 index 0000000..e6dc050 --- /dev/null +++ b/jq/count-the-number-of-things-in-a-json-file.md @@ -0,0 +1,43 @@ +# Count The Number Of Things In A JSON File + +JQ is a great tool for finding out the number of things in a JSON file. + +If the top-level contents of the JSON is a list, then you can pipe it directly +to the [`length` function](https://stedolan.github.io/jq/manual/#length). + +```bash +// [1, 2, {"three": 4}] +$ jq '. | length' data.json +3 +``` + +It works the same for counting the number of entries (key-value pairs) in a +top-level JSON object. + +```bash +// { "hello": "world", "list": [1,2,3] } +$ jq '. | length' data.json +2 +``` + +If you are trying to get the count of a nested value, navigate to it and then +pipe that to `length`. + +```bash +// { "hello": "world", "list": [1,2,3] } +$ jq '.list | length' data.json +3 +``` + +You can even count each value in a JSON object by transforming it into an array +of the values with `[]`. + +```bash +// { "hello": "world", "list": [1,2,3] } +$ jq '.[] | length' data.json +5 +3 +``` + +Notice, the length of `"world"` is `5` characters and the length of `[1,2,3]` +is `3` elements.