# Guides

The three ways to read JSON with simdjson-kotlin: DOM, On-Demand, and kotlinx.serialization.


simdjson-kotlin gives you three ways to read JSON, from a full random-access
tree down to zero-copy streaming. Pick the one that matches how you consume the
data.

<div class="kt-card-grid">
  
<a class="kt-card kt-card--hoverable" href="/simdjson-kotlin/guides/dom/"><h3 class="kt-card__title">DOM API</h3><p class="kt-card__body">Parse the whole document into an immutable <code>JsonValue</code> tree with random access.</p><span class="kt-card__arrow">→</span></a>
<a class="kt-card kt-card--hoverable" href="/simdjson-kotlin/guides/on-demand/"><h3 class="kt-card__title">On-Demand API</h3><p class="kt-card__body">Lazy, forward-only iteration: the fastest, lowest-allocation path.</p><span class="kt-card__arrow">→</span></a>
<a class="kt-card kt-card--hoverable" href="/simdjson-kotlin/guides/serialization/"><h3 class="kt-card__title">kotlinx.serialization</h3><p class="kt-card__body">Decode straight into your <code>@Serializable</code> classes on the JVM.</p><span class="kt-card__arrow">→</span></a>

</div>

