YAML Equivalent of Array of Objects: Complete Guide for JSON to YAML Conversion

Nov 22, 2025 · Programming · 9 views · 7.8

Keywords: YAML | JSON | array_of_objects | data_conversion | configuration_files

Abstract: This article provides an in-depth exploration of representing arrays of objects in YAML, detailing the conversion process from JSON. Through concrete examples, it demonstrates YAML's mapping and sequence syntax rules, including differences between block and flow styles, and the importance of proper indentation alignment. The article also offers practical conversion techniques and common error analysis to help developers better understand and utilize YAML format.

Overview of YAML and JSON Relationship

YAML (YAML Ain't Markup Language) is a superset of JSON, meaning all valid JSON documents are also valid YAML documents. This design makes migration from JSON to YAML relatively straightforward, but YAML offers more human-friendly syntax and richer features. In practical development, YAML is commonly used for configuration files, data serialization, and cross-language data exchange scenarios.

Basic Data Structure Comparison

Before diving into arrays of objects, we need to understand the correspondence between YAML and JSON in basic data structures. JSON objects are called mappings in YAML, while JSON arrays are called sequences.

Two Styles of Mappings

YAML mappings support two writing styles: flow style and block style. Flow style resembles JSON, using curly braces to enclose key-value pairs:

{ foo: 1, bar: 2 }

Block style uses indentation to organize structure:

foo: 1
bar: 2

A key requirement for block style is that the first characters of keys must align in the same column. The following example demonstrates correct alignment:

# Correct example
   foo: 1
   bar: 2

While this example will cause parsing errors:

# Incorrect example
   foo: 1
    bar: 2

Sequence Representation Methods

YAML sequences also support flow style and block style. Flow style uses square brackets:

[ foo bar, baz ]

Block style uses hyphens:

- foo bar
- baz

In block sequences, all hyphens must align in the same column, which is an important rule in YAML syntax.

Practical Conversion of Object Arrays

Now let's specifically analyze how to convert JSON object arrays to YAML format. Consider the following JSON example:

{"AAPL": [
  {
    "shares": -75.088,
    "date": "11/27/2015"
  },
  {
    "shares": 75.088,
    "date": "11/26/2015"
  },
]}

Step-by-Step Conversion Process

The conversion process should proceed from the inside out. First, process the innermost objects:

{
  "shares": -75.088,
  "date": "11/27/2015"
}

The corresponding YAML mapping is:

shares: -75.088
date: 11/27/2015

Next, place these two objects into a sequence:

- shares: -75.088
  date: 11/27/2015
- shares: 75.088
  date: 11/26/2015

Observe the alignment rules: hyphens align, and the first characters of mapping keys align.

Finally, place the entire sequence as the value of a mapping with key "AAPL":

AAPL:
  - shares: -75.088
    date: 11/27/2015
  - shares: 75.088
    date: 11/26/2015

Handling Complex Nested Structures

In practical applications, we often encounter more complex nested structures. The reference article provides an example of object arrays containing array properties:

[
  {
    "id": 1,
    "name": "Franc",
    "roles": [
      "admin",
      "hr"
    ]
  },
  {
    "id": 2,
    "name": "John",
    "roles": [
      "admin",
      "finance"
    ]
  }
]

The corresponding YAML representation is:

- id: 1
  name: Franc
  roles:
    - admin
    - hr
- id: 2
  name: John
  roles:
    - admin
    - finance

Common Errors and Best Practices

Common errors developers make during YAML conversion include:

Inconsistent Indentation

YAML is very sensitive to indentation. Mixing spaces and tabs, or inconsistent indentation levels will cause parsing errors. It's recommended to always use spaces for indentation and maintain consistent indentation width (typically 2 spaces).

Unnecessary JSON Syntax Residue

Some developers retain JSON commas and quotes during conversion:

AAPL:
  - {
    shares: -75.088,
    date: 11/27/2015
  }
  {
    shares: 75.088,
    date: 11/26/2015
  }

While this is technically valid (since YAML is a JSON superset), it defeats the purpose of using YAML—to achieve cleaner, more readable formatting.

Data Type Handling

YAML automatically infers data types. Numbers, boolean values, null, etc., don't require quotes, while strings containing special characters or that might be mistaken for other types need quotes. Date strings like "11/27/2015" should use quotes to avoid parsing ambiguity.

Validation and Testing

To ensure YAML format correctness, use online tools or libraries for validation. For example, using JavaScript's js-yaml library:

console.log(jsyaml.load(`
AAPL:
  - shares: -75.088
    date: 11/27/2015
  - shares: 75.088
    date: 11/26/2015
`));

This helps confirm whether the YAML document correctly parses into the expected data structure.

Conclusion

YAML provides a more elegant representation of object arrays compared to JSON. By using block-style mappings and sequences, combined with strict indentation alignment rules, we can create configuration files that meet both machine parsing requirements and human readability. Mastering YAML's syntax features and conversion techniques can significantly improve development efficiency and code maintainability.

Copyright Notice: All rights in this article are reserved by the operators of DevGex. Reasonable sharing and citation are welcome; any reproduction, excerpting, or re-publication without prior permission is prohibited.