yq/pkg/yqlib/doc/Collect into Object.md
Mike Farah f7f8bed955 wip
2020-12-27 09:55:21 +11:00

79 lines
1.0 KiB
Markdown

This is used to construct objects (or maps). This can be used against existing yaml, or to create fresh yaml documents.
## Collect empty object
Running
```bash
yq eval --null-input '{}'
```
will output
```yaml
{}
```
## Wrap (prefix) existing object
Given a sample.yml file of:
```yaml
name: Mike
'': null
```
then
```bash
yq eval '{"wrap": .}' sample.yml
```
will output
```yaml
wrap:
name: Mike
'': null
```
## Using splat to create multiple objects
Given a sample.yml file of:
```yaml
name: Mike
pets: [cat, dog]
'': null
```
then
```bash
yq eval '{.name: .pets.[]}' sample.yml
```
will output
```yaml
Mike: cat
Mike: dog
```
## Working with multiple documents
Given a sample.yml file of:
```yaml
name: Mike
pets: [cat, dog]
'': null
---
name: Rosey
pets: [monkey, sheep]
'': null
```
then
```bash
yq eval '{.name: .pets.[]}' sample.yml
```
will output
```yaml
Mike: cat
Mike: dog
Rosey: monkey
Rosey: sheep
```
## Creating yaml from scratch
Running
```bash
yq eval --null-input '{"wrap": "frog"}'
```
will output
```yaml
wrap: frog
```